TurboVNC / turbovnc

Main TurboVNC repository
https://TurboVNC.org
GNU General Public License v2.0
765 stars 138 forks source link

Accessing :0 like x11vnc #34

Closed mslinn closed 8 years ago

mslinn commented 8 years ago

Is there an easy way for TurboVNC to serve and connect to the actual X11 desktop, like x11vnc?

dcommander commented 8 years ago

No. I recommend that people use x11vnc if they need to do that. Recent versions of libvncserver (upon which x11vnc is based) contain the TurboVNC encoder, so that solution is probably as fast as anything I could design (at least on a LAN. It won't be as fast as TurboVNC on a slow network, because libvncserver lacks the RFB flow control extensions.) No sense in reinventing the wheel. Accessing a real X server using VNC is not an easy problem (it will become astronomically easier under Wayland, once that technology becomes commonplace.)

I also question the general necessity of accessing the root X server with VNC. It's been my experience that there are basically three reasons why someone would want to do that:

mslinn commented 8 years ago

Thanks for the info.

The main reason for looking into this is to support the few applications that only run on real X11. For example, TeamViewer 11 will display but won't sign in when displayed on VNC; it requires a real X11 desktop that it can serve.

dcommander commented 8 years ago

Why would you need to run TeamViewer in VNC? TurboVNC already has built-in collaboration features.

dcommander commented 8 years ago

But if you absolutely need to run that, I'm sure there is a way to make it run inside of TurboVNC. I would just need to understand exactly what it is looking for-- that is, what parameter it is examining to determine whether or not it's running on a local display.

mslinn commented 8 years ago

I use both products. Each has its own strengths.

I don't know what the issue is with TeamViewer not running under TurboVNC.

dcommander commented 8 years ago

Do they have a demo version? I could poke around. I doubt that the fix would be very complicated. They're probably just doing something stupid like looking for a particular X vendor string.

mslinn commented 8 years ago

TeamViewer is free for personal use http://www.teamviewer.com/en-us/download/linux/

I think it is also available via PPA repo, RPM and Yum

dcommander commented 8 years ago

You're right. TeamViewer in a VNC session is well and truly broken. GUI buttons don't work, it complains about being unable to connect, etc. No idea why simply running it in an X proxy would cause it to behave that way. I tried to run it in a VNC session that was assigned display :0, and no such luck. So apparently it isn't the display number that's tripping it up. I tried running it in TigerVNC, then running it in TurboVNC with VirtualGL, on the off chance that the lack of a GLX extension was tripping it up. Also no luck. I tried using the new NV-CONTROL emulator in TurboVNC 2.1, on the off chance that TV was making use of that extension. No luck. I also tried running it in Xvfb, which should by all rights be as close as you can get to the "real" X server. No luck. It simply doesn't like X proxies, period. There may be a design reason behind that, but I can't imagine what it would be. I can run other screen scrapers (including x11vnc) inside of a TurboVNC session with no problems, so the relevant extensions (XFIXES, XTEST, etc.) apparently work. I don't have time to look into it further at the moment, but if you stumble upon any clues that might help understand what this application is expecting, please add them here.

mslinn commented 8 years ago

Wow, you really dug into this. Thanks!