Search code examples
nomachine-nxnomachine

Is there a way to get nomachine to better show the caret in terminal?


Host machine: Debian 10 running NoMachine 7.2.3 Settings: Specified H264 User Hardware Encoding enabled Use Specific Frame Rate enabled (60FPS) Use Acceleration enabled

Client: Windows 10 running NoMachine 7.2.3

Both machines have monitors attached. Using NX protocol for connection. FullScreen / Scale to Window / Desktop is currently 2560x1440 (reduced from native while testing this issue)

Specific issue: I do a ton of work in the terminal and when viewing desktop via nomachine, the terminal caret is randomly not visible. The same issue is less noticeable with right click menus and other areas of "visual updates in small screen space." If this were another remote desktop vendor I would try to find the "don't update just regions" setting to force the entire display to update regularly, but I can't find similar settings for nomachine. I have a dedicated gigabit connection between the two machines with no other traffic on that line, so bandwidth is not an issue.

To recreate: I disabled caret blink (using universal access / accessibility settings) so the caret is a solid block in terminal / vi. If I edit a text file in vi and move up and down, the caret will only update visually every other line or so (verified on the physical screen it is moving correctly). Same if I highlight or insert, etc. You inevitably miss a character or so or lose your place).

I have tried changing speed vs quality slider, resolutions, swapping from h264 to VP8, etc. I have disabled: multi-pass display encoding frame buffering on decoding client side image post-processing

Nothing seems to change this specific issue. Yes I can make dragging a quarter-screen-sized terminal window smoother, but that doesn't help me follow the caret in vi/vim. Both machines are nicely spec'd (client has 16G / RTX2080, server has 32G / GTX1080)

Is there a way to get nomachine to update all the screen all the time, or at least better refresh small areas like a terminal caret?


Solution

  • (OP): Based on a night of troubleshooting, the issue seemed to be either:

    1. An issue with the Debian install of the nvidia drivers
    2. The server machine is a laptop with a broken main screen (but with an HDMI external monitor plugged in). The Debian X-server may have been confused as to whether it was headless or not and caused issues with nomachine (which tries to detect headless and start a virtual session).

    The solution to this exact problem would be to disable the GUI and force a virtual session, per https://www.nomachine.com/AR03P00973 (dummy dongles won't work because the laptop's main display is not a standard plug).

    In my specific case, I needed GUI access on the server at times so I couldn't use the above methods, and I could not remedy the problem with Debian, so I wiped the system and installed Ubuntu 20.04, which is more forgiving with graphics drivers and monitors. After setting up the Ubuntu system as similarly as possible to the Debian system and letting the proprietary nvidia drivers auto install, nomachine connected at the same resolution and worked perfectly, without the lag in small screen areas.