pikvm / pikvm

Open and inexpensive DIY IP-KVM based on Raspberry Pi
https://pikvm.org
GNU General Public License v3.0
8.33k stars 457 forks source link

Option to hide the remote cursor #1050

Open darkbasic opened 1 year ago

darkbasic commented 1 year ago

Describe the bug When connecting to my PiKVM v4 either via tigervnc or via the web UI the remote cursor is being shown. It lags too much to be usable on its own, so you have to add a local cursor (the small dot) and you end up with duplicate cursors. Ideally the remote cursor should be hidden, not sure how but maybe by faking the input events as touch inputs so that the remote cursor won't even move until you click. If the remove cursor can indeed be hidden then maybe the local one should be changed to something more visible than the thin circle in the web UI.

I wouldn't call the current experience pleasant to use. The web ui/vnc client right now is "barely" usable because having two cursors is confusing and the remote one lags behind the local one (even when setting the polling interval to 10 ms).

To Reproduce

  1. Connect to a PiKVM v4 using these settings or the web ui
  2. Remote cursor is being shown (laggy, gets clipped when you reach the border of the window).

Expected behavior The remote cursor should not be shown.

Screenshots image

Desktop (please complete the following information):

PiKVM info:

Additional context Tigervnc issue: https://github.com/TigerVNC/tigervnc/issues/1642

mdevaev commented 1 year ago

Hello! There are a few things regarding this.

darkbasic commented 1 year ago

Emulating touch events is possible, but it will lead to worse compatibility because not all devices support touch.

Not necessarily: we could emulate both mouse and touch and add a switch in the web ui to choose which one you want to use. Than means being able to emulate the mouse while in the bios and switching to touch once you booted your OS.

The showing of the local cursor depends entirely on the VNC client, we also cannot influence this from the VNC server inside PiKVM. In my case, I use TigerVNC on Linux and there is no local cursor.

That part was a bug and there is an easy workaround: https://github.com/TigerVNC/tigervnc/issues/1340

It is impossible to completely get rid of the latency, although I'm working to reduce it. The reason is that this is a hardware video capture, it is not the same as a regular VNC or TeamViewer. Image capture takes time, video encoding too, https://github.com/pikvm/pikvm/issues/784. This problem concerns absolutely all existing KVM over IP.

Yeah I know, I'm not complaining about the latency but rather the impossibility of hiding the remote cursor somehow.

As for the web interface, I could add an option that hides the blue dot. However, I suggest you try to get used to it, because it's harder to use the mouse without it. You can focus on the blue dot when you make clicks, because as soon as you make a click, the remote cursor will be instantly moved to the position of the blue dot and the click will be executed in the correct position.

That wouldn't help. I'd like to hide the remote cursor, not the local one! I think this can only be achieved via touch events.

mdevaev commented 1 year ago

Got it. However, using a touch device has far-reaching consequences, for example, the inability to turn off the virtual USB device in real time (due to bugs in the kernel) and a limited number of USB endpoints.

Actually, I have an idea how to solve it. We are planning one secret feature here, with the help of which your case can also be solved. So I ask you to wait a couple of months before the release.

darkbasic commented 1 year ago

Actually, I have an idea how to solve it. We are planning one secret feature here, with the help of which your case can also be solved.

Oh nice, curiosity is killing me know :)

So I ask you to wait a couple of months before the release.

Sure.

mdevaev commented 1 year ago

:ok_hand:

lyonzy commented 1 year ago

A Windows-specific option (until we get this intriguing new feature above!) is to set all your cursors in Control Panel to invisible.cur which you can download from various sites (e.g. here)

mdevaev commented 1 year ago

Thanks for the info!

darkbasic commented 9 months ago

@mdevaev any news on this?

mdevaev commented 9 months ago

Not yet, sorry. There are a lot of tasks on other fronts

Сб, 17 февр. 2024 г. в 11:17, Niccolò Belli @.***>:

@mdevaev https://github.com/mdevaev any news on this?

— Reply to this email directly, view it on GitHub https://github.com/pikvm/pikvm/issues/1050#issuecomment-1949912038, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADFUA724T6W4J4I5UDXOFLYUBYT3AVCNFSM6AAAAAAZ5YY7FKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBZHEYTEMBTHA . You are receiving this because you were mentioned.Message ID: @.***>

dreamsea503 commented 8 months ago

Hello.

I am trying to use KVM to control another laptop. But my actual pointer is different from remote cursor. It's the same in the middle of the screen. But when it goes to the side, there becomes different.

Can you describe why it's happening and how to fix this issue?

My captured behavior is attached via video.

screen-capture (1).webm

mdevaev commented 8 months ago

Your host uses software scaling of the screen. Please contact our support in discord.

arch1mede commented 3 months ago

This is for anyone else running into this same issue.

The reason for this is that the Display and Active display does not match. Windows sometimes has a display mismatch, don't know why.

The fix is to have Desktop mode (Display) and Active signal mode match.

In this example, this is a v4 that can support 1920x1200@60hz, otherwise set for standard 1080p@60hz OR whatever resolution you want.

image

System ->Display->Advanced Display, then display properties, then list all modes, then choose the same display size, for Win10 this might be a little different but should generally be the same.