ssvncviewer(1) | SSVNC | ssvncviewer(1) |
ssvncviewer - an X viewer client for VNC
ssvncviewer [options] [host][:display]
ssvncviewer [options] [host][::port]
ssvncviewer [options] exec=[cmd+args...]
ssvncviewer [options] fd=n
ssvncviewer [options] /path/to/unix/socket
ssvncviewer [options] unix=/path/to/unix/socket
ssvncviewer [options] -listen [display]
ssvncviewer -help
ssvncviewer is an Xt-based client application for the VNC (Virtual Network Computing) system. It can connect to any VNC-compatible server such as Xvnc, WinVNC, or x11vnc, allowing you to control desktop environment of a different machine.
ssvncviewer is an enhanced version of the tightvnc unix viewer that can take advantage of features in the x11vnc and UltraVNC VNC servers. See below for the description of these features.
You can use F8 to display a pop-up utility menu (also F7 on MacOSX.) Press F8 twice to pass single F8 to the remote side.
If the host:port is specified as "exec=command args..." then instead of making a TCP/IP socket connection to the remote VNC server, "command args..." is executed and the viewer is attached to its stdio. This enables tunnelling established via an external command, e.g. an stunnel(8) that does not involve a listening socket. This mode does not work for -listen reverse connections. To not have the exec= pid killed at exit, set SSVNC_NO_KILL_EXEC_CMD=1.
If the host:port is specified as "fd=n" then it is assumed n is an already opened file descriptor to the socket. (i.e the parent did fork+exec)
If the host:port contains a '/' and exists in the file system it is interpreted as a unix-domain socket (AF_LOCAL/AF_UNIX instead of AF_INET) Prefix with unix= to force interpretation as a unix-domain socket.
If you observe mouse trail painting errors, enable X11 Cursor mode (either via Popup or -x11cursor.)
Note that scaling is done in software and so can be slow and requires more memory. Some speedup Tips:
ZRLE is faster than Tight in this mode. When scaling is first detected, the encoding will be automatically switched to ZRLE. Use the Popup menu if you want to go back to Tight. Set SSVNC_PRESERVE_ENCODING=1 to disable this.
Use a solid background on the remote side. (e.g. manually or via x11vnc -solid ...)
If the remote server is x11vnc, try client side caching: x11vnc -ncache 10 ...
Option "Backingstore"
in the Device section of /etc/X11/xorg.conf. In -bs mode with no X server backingstore, whenever an area of the screen is re-exposed it must go out to the VNC server to retrieve the pixels. This is too slow.
In -nobs mode, memory is allocated by the viewer to provide its own backing of the main viewer window. This actually makes some activities faster (changes in large regions) but can appear to "flash" too much.
You can also indicate "str" via the environment variable SSVNC_UNIXPW.
Note that the Escape key is actually sent first to tell x11vnc to not echo the Unix Username back to the VNC viewer. Set SSVNC_UNIXPW_NOESC=1 to override this.
If str is ".", then you are prompted at the command line for the username and password in the normal way. If str is "-" the stdin is read via getpass(3) for username@password. Otherwise if str is a file, it is opened and the first line read is taken as the Unix username and the 2nd as the password. If str prefixed by "rm:" the file is removed after reading. Otherwise, if str has a "@" character, it is taken as username@password. Otherwise, the program exits with an error. Got all that?
Example: vncviewer ... -repeater ID:3333 repeat.host:5900
Example: vncviewer ... -repeater vhost:0 repeat.host:5900
Use, e.g., '-repeater SCIII=ID:3210' if the repeater is a Single Click III (SSL) repeater (repeater_SSL.exe) and you are passing the SSL part of the connection through stunnel, socat, etc. This way the magic UltraVNC string 'testB' needed to work with the repeater is sent to it.
IMPORTANT NOTE: The UltraVNC MS-Logon Diffie-Hellman exchange is very weak and can be brute forced to recover your username and password in a few seconds of CPU time. To be safe, be sure to use an additional encrypted tunnel (e.g. SSL or SSH) for the entire VNC session.
Use '-escape default' for the default modifier sequence. (Unix: Alt_L,Super_L and MacOSX: Control_L,Meta_L)
Here are the 'Escape Keys: Help+Set' instructions from the Popup:
Escape Keys: Enter a comma separated list of modifier keys to be the 'escape sequence'. When these keys are held down, the next keystroke is interpreted locally to invoke a special action instead of being sent to the remote VNC server. In other words, a set of 'Hot Keys'.
Here is the list of local key mappings to special actions:
r: refresh desktop b: toggle bell c: toggle full-color
f: file transfer x: x11cursor z: toggle Tight/ZRLE
l: full screen g: graball e: escape keys dialog
s: scale dialog +: scale up (=) -: scale down (_)
t: text chat a: alphablend cursor
V: toggle viewonly Q: quit viewer 123456: UltraVNC scale 1/n
Arrow keys: pan the viewport about 10% for each keypress.
PageUp/PageDown: pan the viewport by a screenful vertically.
Home/End: pan the viewport by a screenful horizontally.
KeyPad Arrows: pan the viewport by 1 pixel for each keypress.
Dragging the Mouse with Button1 pressed also pans the viewport.
Clicking Mouse Button3 brings up the Popup Menu.
The above mappings are always active in ViewOnly mode, unless you set the Escape Keys value to 'never'.
x11vnc -appshare hot-keys: x11vnc has a simple application sharing mode that enables the viewer-side to move, resize, or raise the remote toplevel windows. To enable it, hold down Shift + the Escape Keys and press these:
Arrow keys: move the remote window around in its desktop.
PageUp/PageDn/Home/End: resize the remote window.
+/-: raise or lower the remote window.
M or Button1 move win to local position; D or Button3: delete remote win.
If the Escape Keys value below is set to 'default' then a default list of of modifier keys is used. For Unix it is: Alt_L,Super_L and for MacOSX it is Control_L,Meta_L. Note: the Super_L key usually has a Windows(TM) Flag on it. Also note the _L and _R mean the key is on the LEFT or RIGHT side of the keyboard.
On Unix the default is Alt and Windows keys on Left side of keyboard. On MacOSX the default is Control and Command keys on Left side of keyboard.
Example: Press and hold the Alt and Windows keys on the LEFT side of the keyboard and then press 'c' to toggle the full-color state. Or press 't' to toggle the ultravnc Text Chat window, etc.
To use something besides the default, supply a comma separated list (or a single one) from: Shift_L Shift_R Control_L Control_R Alt_L Alt_R Meta_L Meta_R Super_L Super_R Hyper_L Hyper_R or Mode_switch.
ViewOnly: ~ -viewonly
Disable Bell: ~ -nobell
Cursor Shape: ~ -nocursorshape
X11 Cursor: ~ -x11cursor
Cursor Alphablend: ~ -alpha
Toggle Tight/Hextile: ~ -encodings hextile...
Toggle Tight/ZRLE: ~ -encodings zrle...
Toggle ZRLE/ZYWRLE: ~ -encodings zywrle...
Quality Level ~ -quality (both Tight and ZYWRLE)
Compress Level ~ -compresslevel
Disable JPEG: ~ -nojpeg (Tight)
Pipeline Updates ~ -pipeline
Full Color as many colors as local screen allows.
Grey scale (16 & 8-bpp) ~ -grey, for low colors 16/8bpp modes only.
16 bit color (BGR565) ~ -16bpp / -bgr565
8 bit color (BGR233) ~ -bgr233
256 colors ~ -bgr233 default # of colors.
64 colors ~ -bgr222 / -use64
8 colors ~ -bgr111 / -use8
Scale Viewer ~ -scale
Escape Keys: Toggle ~ -escape
Escape Keys: Help+Set ~ -escape
Set Y Crop (y-max) ~ -ycrop
Set Scrollbar Width ~ -sbwidth
XGrabServer ~ -graball
UltraVNC Extensions:
Set 1/n Server Scale Ultravnc ext. Scale desktop by 1/n.
Text Chat Ultravnc ext. Do Text Chat.
File Transfer Ultravnc ext. File xfer via Java helper.
Single Window Ultravnc ext. Grab and view a single window.
(select then click on the window you want).
Disable Remote Input Ultravnc ext. Try to prevent input and
viewing of monitor at physical display.
Note: the Ultravnc extensions only apply to servers that support
them. x11vnc/libvncserver supports some of them.
Send Clipboard not Primary ~ -sendclipboard
Send Selection Every time ~ -sendalways
The server supplies information in whatever format is desired by the client, in order to make the client as easy as possible to implement. If the client represents itself as able to use multiple formats, the server will choose one.
Pixel format refers to the representation of an individual pixel. The most common formats are 24 and 16 bit "true-color" values, and 8-bit "color map" representations, where an arbitrary map converts the color number to RGB values.
Encoding refers to how a rectangle of pixels are sent (all pixel information in VNC is sent as rectangles). All rectangles come with a header giving the location and size of the rectangle and an encoding type used by the data which follows. These types are listed below.
X resources that vncviewer knows about, aside from the normal Xt resources, are as follows:
When started with the -via option, vncviewer reads the VNC_VIA_CMD environment variable, expands patterns beginning with the "%" character, and executes result as a command assuming that it would create TCP tunnel that should be used for VNC connection. If not set, this environment variable defaults to "/usr/bin/ssh -f -L %L:%H:%R %G sleep 20".
The following patterns are recognized in the VNC_VIA_CMD (note that all the patterns %G, %H, %L and %R must be present in the command template):
vncserver(1), x11vnc(1), ssvnc(1), Xvnc(1), vncpasswd(1), vncconnect(1), ssh(1), http://www.karlrunge.com/x11vnc, http://www.karlrunge.com/x11vnc/ssvnc.html
Original VNC was developed in AT&T Laboratories Cambridge. TightVNC additions was implemented by Constantin Kaplinsky. Many other people participated in development, testing and support. Karl J. Runge added all of the SSVNC related features and improvements.
Man page authors:
Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>,
Terran Melconian <terran@consistent.org>,
Tim Waugh <twaugh@redhat.com>,
Constantin Kaplinsky <const@ce.cctpu.edu.ru>
Karl J. Runge <runge@karlrunge.com>
April 2010 |