neulab/tldr huggingface dataset:
A UINPUT option of the form: accel=f, or accel=fx+fy sets the mouse motion "acceleration".  This is used to correct raw mouse relative motion into how much the application cursor moves (x11vnc has no control over, or knowledge of how the windowing application interprets the raw mouse motions).  Typically the acceleration for an X display is 2 (see xset "m" option).  "f" is a floating point number, e.g. 3.0.  Use "fx+fy" if you need to supply different corrections for x and y.
Note: the default acceleration is 2.0 since it seems both X and qt-embedded often (but not always) use this value.
Even with a correct accel setting the mouse position will get out of sync (probably due to a mouse "threshold" setting where the acceleration doe not apply, set xset(1) ).  The option reset=N sets the number of ms (default 150) after which the cursor is attempted to be reset (by forcing the mouse to (0, 0) via small increments and then back out to (x, y) in 1 jump), This correction seems to be needed but can cause jerkiness or unexpected behavior with menus, etc.  Use reset=0 to disable.
If you set the env. var X11VNC_UINPUT_THRESHOLDS then the thresh=n mode will be enabled.  It is currently not working well.  If |dx| <= thresh and |dy| < thresh no acceleration is applied.  Use "thresh=+n" |dx| + |dy| < thresh to be used instead (X11?)
Example: -pipeinput UINPUT:accel=4.0 -cursor none
If the uinput device has an absolute pointer (as opposed to a normal mouse that is a relative pointer) you can specify the option "abs".  Note that a touchpad on a laptop is an absolute device to some degree.  This (usually) avoids all the problems with mouse acceleration.  If x11vnc has trouble deducing the size of the device, use "abs=WxH".  Furthermore, if the device is a touchscreen (assumed to have an absolute pointer) use "touch" or "touch=WxH".  For touchscreens, when a mouse button is pressed, a pressure increase is injected, and when the button is released a pressure of zero is injected.
If touch has been set, use "touch_always=1" to indicate whenever the mouse moves with no button pressed, a touch event of zero pressure should be sent anyway.  Also use "btn_touch=1" to indicate a BTN_TOUCH keystroke press or release should be sent instead of a pressure change.  Set "dragskip=n" to skip n dragged mouse touches (with pressure applied) before injecting one.  To indicate the pressure that should be sent when there is a button click for a touchscreen device, specify pressure=n, e.g. n=5. The default is n=1.
If a touch screen is being used ("touch" above) and it is having its input processed by tslib, you can specify the tslib calibration file via tslib_cal=<file>.  For example, tslib_cal=/etc/pointercal.  To get accurate or even usable positioning this is required when tslib is in use.
The Linux uinput mechanism can be bypassed and one can write input events DIRECTLY to the devices instead.  To do this, specify one or more of the following for the input classes: direct_rel=<device> direct_abs=<device> direct_btn=<device> or direct_key=<device>.  The <device> file is usually something like /dev/input/event1 but you can specify any device file or pipe. You must specify each one of the above classes even if they correspond to the same device file (rel/abs and btn are often the same.)  Look at the file /proc/bus/input/devices to get an idea what is available and the device filenames.  Note: The /dev/input/mouse* devices do not seem to work, use the corresponding /dev/input/event* file instead.  Any input class not directly specified as above will be handled via the uinput mechanism.  To disable creating a uinput device (and thereby discarding unhandled input), specify "nouinput".
-pipeinput UINPUT:direct_abs=/dev/input/event1
this was used on a qtmoko Neo freerunner (armel):
-pipeinput UINPUT:touch,tslib_cal=/etc/pointercal, direct_abs=/dev/input/event1,nouinput,dragskip=4
(where the long line has been split into two.)
You can set the env. var X11VNC_UINPUT_DEBUG=1 or higher to get debugging output for UINPUT mode.
-macnodim
For the native MacOSX server, disable dimming.
-macnosleep
For the native MacOSX server, disable display sleep.
-macnosaver
For the native MacOSX server, disable screensaver.
-macnowait
For the native MacOSX server, do not wait for the user to switch back to his display.
-macwheel n
For the native MacOSX server, set the mouse wheel speed to n (default 5).
-macnoswap
For the native MacOSX server, do not swap mouse buttons 2 and 3.
-macnoresize
For the native MacOSX server, do not resize or reset the framebuffer even if it is detected that the screen resolution or depth has changed.
-maciconanim n
For the native MacOSX server, set n to the number of milliseconds that the window iconify/deiconify animation takes.  In -ncache mode this value will be used to skip the animation if possible. (default 400)
-macmenu
For the native MacOSX server, in -ncache client-side caching mode, try to cache pull down menus (not perfect because they have animated fades, etc.)
-macuskbd
For the native MacOSX server, use the original keystroke insertion code based on a US keyboard.
-macnoopengl
For the native MacOSX server, do not use OpenGL for screen capture, but rather use the original, deprecated raw memory access method: addr = CGDisplayBaseAddress().
-macnorawfb
For the native MacOSX server, disable the raw memory address screen capture method.
MACOSX NOTE: There are some deprecated MacOSX interfaces to inject keyboard and mouse events and the raw memory access method is deprecated as well (however, OpenGL will be preferred if available because it is faster.)  One can force not using any deprecated interfaces at compile time by setting -DX11VNC_MACOSX_NO_DEPRECATED=1 in CPPFLAGS.  Or to turn them off one by one: -DX11VNC_MACOSX_NO_DEPRECATED_LOCALEVENTS=1, -DX11VNC_MACOSX_NO_DEPRECATED_POSTEVENTS=1 or -DX11VNC_MACOSX_NO_DEPRECATED_FRAMEBUFFER=1 At run time, for testing and workarounds, one can disable them by using: -env X11VNC_MACOSX_NO_DEPRECATED=1 -env X11VNC_MACOSX_NO_DEPRECATED_LOCALEVENTS=1 -env X11VNC_MACOSX_NO_DEPRECATED_POSTEVENTS=1 or -env X11VNC_MACOSX_NO_DEPRECATED_FRAMEBUFFER=1 Note: When doing either of these for the mouse input not everything works currently, e.g. double clicks and wireframing.  Also, screen resolution and pixel depth changes will not be automatically detected unless the deprecated framebuffer interfaces are allowed.
Conversely, if you are compiling on an older machine that does not have some of the newer interfaces, you may need to specify -DX11VNC_MACOSX_NO_CGEVENTCREATESCROLLWHEELEVENT -DX11VNC_MACOSX_NO_CGEVENTCREATEMOUSEEVENT or -DX11VNC_MACOSX_NO_CGEVENTCREATEKEYBOARDEVENT.  Use -DX11VNC_MACOSX_USE_GETMAINDEVICE to regain the very old QuickDraw GetMainDevice() interface (rare...)
-gui [gui-opts]
Start up a simple tcl/tk gui based on the remote control options -remote/-query described below.  Requires the "wish" program to be installed on the machine.  "gui-opts" is not required: the default is to start up both the full gui and x11vnc with the gui showing up on the X display in the environment variable DISPLAY.
"gui-opts" can be a comma separated list of items.  Currently there are these types of items: 1) a gui mode, a 2) gui "simplicity", 3) the X display the gui should display on, 4) a "tray" or "icon" mode, and 5) a gui geometry.
1) The gui mode can be "start", "conn", or "wait" "start" is the default mode above and is not required.  "conn" means do not automatically start up x11vnc, but instead just try to connect to an existing x11vnc process.  "wait" means just start the gui and nothing else (you will later instruct the gui to start x11vnc or connect to an existing one.)
2) The gui simplicity is off by default (a power-user gui with all options is presented) To start with something less daunting supply the string "simple" ("ez" is an alias for this).  Once the gui is started you can toggle between the two with "Misc -> simple_gui".
3) Note the possible confusion regarding the potentially two different X displays: x11vnc polls one, but you may want the gui to appear on another.  For example, if you ssh in and x11vnc is not running yet you may want the gui to come back to you via your ssh redirected X display (e.g. localhost:10).
If you do not specify a gui X display in "gui-opts" then the DISPLAY environment variable and -display option are tried (in that order).  Regarding the x11vnc X display the gui will try to communication with, it first tries -display and then DISPLAY.  For example, "x11vnc -display :0 -gui otherhost:0", will remote control an x11vnc polling :0 and display the gui on otherhost:0 The "tray/icon" mode below reverses this preference, preferring to display on the x11vnc display.
4) When "tray" or "icon" is specified, the gui presents itself as a small icon with behavior typical of a "system tray" or "dock applet".  The color of the icon indicates status (connected clients) and there is also a balloon status.  Clicking on the icon gives a menu from which properties, etc, can be set and the full gui is available under "Advanced".  To be fully functional, the gui mode should be "start" (the default).
Note that tray or icon mode will imply the -forever x11vnc option (if the x11vnc server is started along with the gui) unless -connect or -connect_or_exit has been specified.  So x11vnc (and the tray/icon gui) will wait for more connections after the first client disconnects.  If you want only one viewer connection include the -once option.
For "icon" the gui just a small standalone window.  For "tray" it will attempt to embed itself in the "system tray" if possible. If "=setpass" is appended then at startup the X11 user will be prompted to set the VNC session password.  If =<hexnumber> is appended that icon will attempt to embed itself in the window given by hexnumber.  Use =noadvanced to disable the full gui. (To supply more than one, use "+" sign).  E.g. -gui tray=setpass and -gui icon=0x3600028
Other modes: "full", the default and need not be specified.  "-gui none", do not show a gui, useful to override a ~/.x11vncrc setting, etc.
5) When "geom=+X+Y" is specified, that geometry is passed to the gui toplevel.  This is the icon in icon/tray mode, or the full gui otherwise.  You can also specify width and height, i.e. WxH+X+Y, but it is not recommended.  In "tray" mode the geometry is ignored unless the system tray manager does not seem to be running.  One could imagine using something like "-gui tray,geom=+4000+4000" with a display manager to keep the gui invisible until someone logs in...
More icon tricks, "icon=minimal" gives an icon just with the VNC display number.  You can also set the font with "iconfont=...". The following could be useful: "-gui icon=minimal,iconfont=5x8,geom=24x10+0-0"
General examples of the -gui option: "x11vnc -gui", "x11vnc -gui ez" "x11vnc -gui localhost:10", "x11vnc -gui conn,host:0", "x11vnc -gui tray,ez" "x11vnc -gui tray=setpass"
If you do not intend to start x11vnc from the gui (i.e. just remote control an existing one), then the gui process can run on a different machine from the x11vnc server as long as X permissions, etc. permit communication between the two.
FONTS: On some systems the tk fonts can be too small, jagged, or otherwise unreadable.  There are 4 env vars you can set to be the tk font you prefer:
X11VNC_FONT_BOLD   main font for menus and buttons. X11VNC_FONT_FIXED  font for fixed width text.
X11VNC_FONT_BOLD_SMALL  tray icon font.  X11VNC_FONT_REG_SMALL tray icon menu font.
The last two only apply for the tray icon mode.
-env X11VNC_FONT_BOLD='Helvetica -16 bold' -env X11VNC_FONT_FIXED='Courier -14' -env X11VNC_FONT_REG_SMALL='Helvetica -12'
You can put the lines like the above (without the quotes) in your ~/.x11vncrc file to avoid having to specify them on the x11vnc command line.
-remote command
Remotely control some aspects of an already running x11vnc server. "-R" and "-r" are aliases for "-remote".  After the remote control command is sent to the running server the 'x11vnc -remote ...' x11vnc command exits.  You can often use the -query command (see below) to see if the x11vnc server processed your -remote command.
The default communication channel is that of X properties (specifically X11VNC_REMOTE), and so this command must be run with correct settings for DISPLAY and possibly XAUTHORITY to connect to the X server and set the property.  Alternatively, use the -display and -auth options to set them to the correct values.  The running server cannot use the -novncconnect option because that disables the communication channel.  See below for alternate channels.
For example: 'x11vnc -remote stop' (which is the same as ´x11vnc -R stop') will close down the x11vnc server.  ´x11vnc -R shared' will enable shared connections, and ´x11vnc -R scale:3/4' will rescale the desktop.
To use a different name for the X11 property (e.g. to have separate communication channels for multiple x11vnc's on the same display) set the X11VNC_REMOTE environment variable to the string you want, for example: -env X11VNC_REMOTE=X11VNC_REMOTE_12345 Both sides of the channel must use the same unique name.
To run a bunch of commands in a sequence use something like: x11vnc -R 'script:firstcmd;secondcmd;...'
Use x11vnc -R script:file=/path/to/file to read commands from a file (can be multi-line and use the comment '#' character in the normal way.  The ';' separator must still be used to separate each command.)
To not try to contact another x11vnc process and instead just run the command (or query) directly, prefix the command with the string "DIRECT:"
The following -remote/-R commands are supported:
stop            terminate the server, same as "quit" "exit" or "shutdown".
ping            see if the x11vnc server responds.  return is: ans=ping:<display>
ping:mystring   as above, but use your own unique string.  return is: ans=ping:mystring:<xdisplay>
blacken         try to push a black fb update to all clients (due to timings a client could miss it). Same as "zero", also "zero:x1,y1,x2,y2" for a rectangle.
refresh         send the entire fb to all clients.
reset           recreate the fb, polling memory, etc.
id:windowid     set -id window to "windowid". empty or "root" to go back to root window
sid:windowid    set -sid window to "windowid"
id_cmd:cmd      cmds: raise, lower, map, unmap, iconify, move:dXdY, resize:dWdH, geom:WxH+X+Y. dX dY, dW, and dH must have a leading "+" or "-" e.g.: move:-30+10 resize:+20+35 also: wm_delete, wm_name:string and icon_name:string. Also id_cmd:win=N:cmd
waitmapped      wait until subwin is mapped.
nowaitmapped    do not wait until subwin is mapped.
clip:WxH+X+Y    set -clip mode to "WxH+X+Y"
flashcmap       enable  -flashcmap mode.
noflashcmap     disable -flashcmap mode.
shiftcmap:n     set -shiftcmap to n.
notruecolor     enable  -notruecolor mode.
truecolor       disable -notruecolor mode.
overlay         enable  -overlay mode (if applicable).
nooverlay       disable -overlay mode.
overlay_cursor  in -overlay mode, enable cursor drawing.
overlay_nocursor disable cursor drawing. same as nooverlay_cursor.
8to24           enable  -8to24 mode (if applicable).
no8to24         disable -8to24 mode.
8to24_opts:str  set the -8to24 opts to "str".
24to32          enable  -24to32 mode (if applicable).
no24to32        disable -24to32 mode.
visual:vis      set -visual to "vis"
scale:frac      set -scale to "frac"
scale_cursor:f  set -scale_cursor to "f"
viewonly        enable  -viewonly mode.
noviewonly      disable -viewonly mode.
shared          enable  -shared mode.
noshared        disable -shared mode.
forever         enable  -forever mode.
noforever       disable -forever mode.
timeout:n       reset -timeout to n, if there are currently no clients, exit unless one connects in the next n secs.
tightfilexfer   enable  filetransfer for NEW clients.
notightfilexfer disable filetransfer for NEW clients.
ultrafilexfer   enable  filetransfer for clients.
noultrafilexfer disable filetransfer for clients.
rfbversion:n.m  set -rfbversion for new clients.
http            enable  http client connections.
nohttp          disable http client connections.
deny            deny any new connections, same as "lock"
nodeny          allow new connections, same as "unlock"
avahi           enable  avahi service advertising.
noavahi         disable avahi service advertising.
mdns            enable  avahi service advertising.
nomdns          disable avahi service advertising.
zeroconf        enable  avahi service advertising.
nozeroconf      disable avahi service advertising.
connect:host    do reverse connection to host, "host" may be a comma separated list of hosts or host:ports.  See -connect. Passwords required as with fwd connections.  See X11VNC_REVERSE_CONNECTION_NO_AUTH=1
disconnect:host disconnect any clients from "host" same as "close:host".  Use host "all" to close all current clients.  If you know the client internal hex ID, e.g. 0x3 (returned by "-query clients" and RFB_CLIENT_ID) you can use that too.
proxy:host:port set reverse connection proxy (empty to disable).
allowonce:host  For the next connection only, allow connection from "host". In -ssl mode two connections are allowed (i.e. Fetch Cert) unless X11VNC_NO_SSL_ALLOW_TWICE=1
allow:hostlist  set -allow list to (comma separated) "hostlist". See -allow and -localhost.  Do not use with -allow /path/to/file Use "+host" to add a single host, and use "-host" to delete a single host
localhost       enable  -localhost mode
nolocalhost     disable -localhost mode
listen:str      set -listen to str, empty to disable.
noipv6          enable  -noipv6 mode.
ipv6            disable -noipv6 mode.
noipv4          enable  -noipv4 mode.
ipv4            disable -noipv4 mode.
6               enable  -6 IPv6 listening mode.
no6             disable -6 IPv6 listening mode.
lookup          disable -nolookup mode.
nolookup        enable  -nolookup mode.
input:str       set -input to "str", empty to disable.
grabkbd         enable  -grabkbd mode.
nograbkbd       disable -grabkbd mode.
grabptr         enable  -grabptr mode.
nograbptr       disable -grabptr mode.
grabalways      enable  -grabalways mode.
nograbalways    disable -grabalways mode.
grablocal:n     set -grablocal to n.
client_input:str set the K, M, B -input on a per-client basis. select which client as for disconnect, e.g. client_input:host:MB or client_input:0x2:K
accept:cmd      set -accept "cmd" (empty to disable).
afteraccept:cmd set -afteraccept (empty to disable).
gone:cmd        set -gone "cmd" (empty to disable).
noshm           enable  -noshm mode.
shm             disable -noshm mode (i.e. use shm).
flipbyteorder   enable -flipbyteorder mode, you may need to set noshm for this to do something.
noflipbyteorder disable -flipbyteorder mode.
onetile         enable  -onetile mode. (you may need to set shm for this to do something)
noonetile       disable -onetile mode.
solid           enable  -solid mode
nosolid         disable -solid mode.
solid_color:color set -solid color (and apply it).
blackout:str    set -blackout "str" (empty to disable).  See -blackout for the form of "str" (basically: WxH+X+Y,...)  Use "+WxH+X+Y" to append a single rectangle use "-WxH+X+Y" to delete one
xinerama        enable  -xinerama mode. (if applicable)
noxinerama      disable -xinerama mode.
xtrap           enable  -xtrap input mode(if applicable)
noxtrap         disable -xtrap input mode.
xrandr          enable  -xrandr mode. (if applicable)
noxrandr        disable -xrandr mode.
xrandr_mode:mode set the -xrandr mode to "mode".
rotate:mode     set the -rotate mode to "mode".
padgeom:WxH     set -padgeom to WxH (empty to disable) If WxH is "force" or "do" the padded geometry fb is immediately applied.
quiet           enable  -quiet mode.
noquiet         disable -quiet mode.
modtweak        enable  -modtweak mode.
nomodtweak      enable  -nomodtweak mode.
xkb             enable  -xkb modtweak mode.
noxkb           disable -xkb modtweak mode.
capslock        enable  -capslock mode.
nocapslock      disable -capslock mode.
skip_lockkeys   enable  -skip_lockkeys mode.
noskip_lockkeys disable -skip_lockkeys mode.
skip_keycodes:str enable -xkb -skip_keycodes "str".
sloppy_keys     enable  -sloppy_keys mode.
nosloppy_keys   disable -sloppy_keys mode.
skip_dups       enable  -skip_dups mode.
noskip_dups     disable -skip_dups mode.
add_keysyms     enable -add_keysyms mode.
noadd_keysyms   stop adding keysyms. those added will still be removed at exit.
clear_mods      enable  -clear_mods mode and clear them.
noclear_mods    disable -clear_mods mode.
clear_keys      enable  -clear_keys mode and clear them.
noclear_keys    disable -clear_keys mode.
clear_locks     do the clear_locks action.
clear_all       do the clear_all action.
keystate        have x11vnc print current keystate.
remap:str       set -remap "str" (empty to disable).  See -remap for the form of "str" (basically: key1-key2,key3-key4,...)  Use "+key1-key2" to append a single keymapping, use "-key1-key2" to delete.
norepeat        enable  -norepeat mode.
repeat          disable -norepeat mode.
nofb            enable  -nofb mode.
fb              disable -nofb mode.
bell            enable  bell (if supported).
nobell          disable bell.
sendbell        ring the bell now.
nosel           enable  -nosel mode.
sel             disable -nosel mode.
noprimary       enable  -noprimary mode.
primary         disable -noprimary mode.
nosetprimary    enable  -nosetprimary mode.
setprimary      disable -nosetprimary mode.
noclipboard     enable  -noclipboard mode.
clipboard       disable -noclipboard mode.
nosetclipboard  enable  -nosetclipboard mode.
setclipboard    disable -nosetclipboard mode.
seldir:str      set -seldir to "str"
resend_cutbuffer resend the most recent CUTBUFFER0 copy
resend_clipboard resend the most recent CLIPBOARD copy
resend_primary   resend the most recent PRIMARY copy
cursor:mode     enable  -cursor "mode".
show_cursor     enable  showing a cursor.
noshow_cursor   disable showing a cursor. (same as "nocursor")
cursor_drag     enable  cursor changes during drag.
nocursor_drag   disable cursor changes during drag.
arrow:n         set -arrow to alternate n.
xfixes          enable  xfixes cursor shape mode.
noxfixes        disable xfixes cursor shape mode.
alphacut:n      set -alphacut to n.
alphafrac:f     set -alphafrac to f.
alpharemove     enable  -alpharemove mode.
noalpharemove   disable -alpharemove mode.
alphablend      disable -noalphablend mode.
noalphablend    enable  -noalphablend mode.
cursorshape     disable -nocursorshape mode.
nocursorshape   enable  -nocursorshape mode.
cursorpos       disable -nocursorpos mode.
nocursorpos     enable  -nocursorpos mode.
xwarp           enable  -xwarppointer mode.
noxwarp         disable -xwarppointer mode.
always_inject   enable  -always_inject mode.
noalways_inject disable -always_inject mode.
buttonmap:str   set -buttonmap "str", empty to disable
dragging        disable -nodragging mode.
nodragging      enable  -nodragging mode.
ncache          reenable -ncache mode.
noncache        disable  -ncache mode.
ncache_size:n   set -ncache size to n.
ncache_cr       enable  -ncache_cr mode.
noncache_cr     disable -ncache_cr mode.
ncache_no_moveraise     enable  no_moveraise mode.
noncache_no_moveraise   disable no_moveraise mode.
ncache_no_dtchange      enable  ncache_no_dtchange mode.
noncache_no_dtchange    disable ncache_no_dtchange mode.
ncache_old_wm           enable  ncache_old_wm mode.
noncache_old_wm         disable ncache_old_wm mode.
ncache_no_rootpixmap    enable  ncache_no_rootpixmap.
noncache_no_rootpixmap  disable ncache_no_rootpixmap.
ncache_reset_rootpixmap recheck the root pixmap, ncrp
ncache_keep_anims       enable  ncache_keep_anims.
noncache_keep_anims     disable ncache_keep_anims.
ncache_pad:n    set -ncache_pad to n.
wireframe       enable  -wireframe mode. same as "wf"
nowireframe     disable -wireframe mode. same as "nowf"
wireframe:str   enable  -wireframe mode string.
wireframe_mode:str enable  -wireframe mode string.
wireframelocal  enable  wireframelocal. same as "wfl"
nowireframe     disable wireframelocal. same as "nowfl"
wirecopyrect:str set -wirecopyrect string. same as "wcr:"
scrollcopyrect:str set -scrollcopyrect string. same "scr"
noscrollcopyrect disable -scrollcopyrect__mode_. "noscr"
scr_area:n      set -scr_area to n
scr_skip:list   set -scr_skip to "list"
scr_inc:list    set -scr_inc to "list"
scr_keys:list   set -scr_keys to "list"
scr_term:list   set -scr_term to "list"
scr_keyrepeat:str set -scr_keyrepeat to "str"
scr_parms:str   set -scr_parms parameters.
fixscreen:str   set -fixscreen to "str".
noxrecord       disable all use of RECORD extension.
xrecord         enable  use of RECORD extension.
reset_record    reset RECORD extension (if avail.)
pointer_mode:n  set -pointer_mode to n. same as "pm"
input_skip:n    set -input_skip to n.
allinput        enable  use of -allinput mode.
noallinput      disable use of -allinput mode.
input_eagerly   enable  use of -input_eagerly mode.
noinput_eagerly disable use of -input_eagerly mode.
ssltimeout:n    set -ssltimeout to n.
speeds:str      set -speeds to str.
wmdt:str        set -wmdt to str.
debug_pointer   enable  -debug_pointer, same as "dp"
nodebug_pointer disable -debug_pointer, same as "nodp"
debug_keyboard   enable  -debug_keyboard, same as "dk"
nodebug_keyboard disable -debug_keyboard, same as "nodk"
keycode:n       inject keystroke 'keycode' (xmodmap -pk)
keycode:n,down  inject 'keycode' (down=0,1)
keysym:str      inject keystroke 'keysym' (number/name)
keysym:str,down inject 'keysym' (down=0,1)
ptr:x,y,mask    inject pointer event x, y, button-mask
fakebuttonevent:button,down direct XTestFakeButtonEvent.
sleep:t         sleep floating point time t.
get_xprop:p     get X property named 'p'.
set_xprop:p:val set X property named 'p' to 'val'.  p -> id=NNN:p for hex/dec window id.
wininfo:id      get info about X window id.  use 'root' for root window, use +id for children.
grab_state      get state of pointer and keyboard grab.
pointer_pos     print XQueryPointer x,y cursor position.
pointer_x       print XQueryPointer x cursor position.
pointer_y       print XQueryPointer y cursor position.
pointer_same    print XQueryPointer ptr on same screen.
pointer_root    print XQueryPointer curr ptr rootwin.
pointer_mask    print XQueryPointer button and mods mask
mouse_x         print x11vnc's idea of cursor position.
mouse_y         print x11vnc's idea of cursor position.
noop            do nothing.
defer:n         set -defer to n ms,same as deferupdate:n
wait:n          set -wait to n ms.
extra_fbur:n    set -extra_fbur to n.
wait_ui:f       set -wait_ui factor to f.
setdefer:n      set -setdefer to -2,-1,0,1, or 2.
wait_bog        disable -nowait_bog mode.
nowait_bog      enable  -nowait_bog mode.
slow_fb:f       set -slow_fb to f seconds.
xrefresh:f      set -xrefresh to f seconds.
readtimeout:n   set read timeout to n seconds.
nap             enable  -nap mode.
nonap           disable -nap mode.
sb:n            set -sb to n s, same as screen_blank:n
fbpm            disable -nofbpm mode.
nofbpm          enable  -nofbpm mode.
dpms            disable -nodpms mode.
nodpms          enable  -nodpms mode.
forcedpms       enable  -forcedpms mode.
noforcedpms     disable -forcedpms mode.
clientdpms      enable  -clientdpms mode.
noclientdpms    disable -clientdpms mode.
noserverdpms    enable  -noserverdpms mode.
serverdpms      disable -noserverdpms mode.
noultraext      enable  -noultraext mode.
ultraext        disable -noultraext mode.
chatwindow      enable  local chatwindow mode.
nochatwindow    disable local chatwindow mode.
chaton          begin chat using local window.
chatoff         end   chat using local window.
xdamage         enable  xdamage polling hints.
noxdamage       disable xdamage polling hints.
xd_area:A       set -xd_area max pixel area to "A"
xd_mem:f        set -xd_mem remembrance to "f"
fs:frac         set -fs fraction to "frac", e.g. 0.5
gaps:n          set -gaps to n.
grow:n          set -grow to n.
fuzz:n          set -fuzz to n.
snapfb          enable  -snapfb mode.
nosnapfb        disable -snapfb mode.
rawfb:str       set -rawfb mode to "str".
uinput_accel:f  set uinput_accel to f.
uinput_thresh:n set uinput_thresh to n.
uinput_reset:n  set uinput_reset to n ms.
uinput_always:n set uinput_always to 1/0.
progressive:n   set LibVNCServer -progressive slice height parameter to n.
desktop:str     set -desktop name to str for new clients.
rfbport:n       set -rfbport to n.
macnosaver      enable  -macnosaver mode.
macsaver        disable -macnosaver mode.
macnowait       enable  -macnowait  mode.
macwait         disable -macnowait  mode.
macwheel:n      set -macwheel to n.
macnoswap       enable  -macnoswap mouse button mode.
macswap         disable -macnoswap mouse button mode.
macnoresize     enable  -macnoresize mode.
macresize       disable -macnoresize mode.
maciconanim:n   set -maciconanim to n.
macmenu         enable  -macmenu  mode.
macnomenu       disable -macmenu  mode.
macuskbd        enable  -macuskbd mode.
macnouskbd      disable -macuskbd mode.
httpport:n      set -httpport to n.
httpdir:dir     set -httpdir to dir (and enable http).
enablehttpproxy   enable  -enablehttpproxy mode.
noenablehttpproxy disable -enablehttpproxy mode.
alwaysshared     enable  -alwaysshared mode.
noalwaysshared   disable -alwaysshared mode.  (may interfere with other options)
nevershared      enable  -nevershared mode.
nonevershared    disable -nevershared mode.  (may interfere with other options)
dontdisconnect   enable  -dontdisconnect mode.
nodontdisconnect disable -dontdisconnect mode.  (may interfere with other options)
debug_xevents   enable  debugging X events.
nodebug_xevents disable debugging X events.
debug_xdamage   enable  debugging X DAMAGE mechanism.
nodebug_xdamage disable debugging X DAMAGE mechanism.
debug_wireframe enable   debugging wireframe mechanism.
nodebug_wireframe disable debugging wireframe mechanism.
debug_scroll    enable  debugging scrollcopy mechanism.
nodebug_scroll  disable debugging scrollcopy mechanism.
debug_tiles     enable  -debug_tiles
nodebug_tiles   disable -debug_tiles
debug_grabs     enable  -debug_grabs
nodebug_grabs   disable -debug_grabs
debug_sel       enable  -debug_sel
nodebug_sel     disable -debug_sel
debug_ncache    enable  -debug_ncache
nodebug_ncache  disable -debug_ncache
dbg             enable  -dbg crash shell
nodbg           disable -dbg crash shell
noremote        disable the -remote command processing, it cannot be turned back on.
bcx_xattach:str  This remote control command is for use with the BARCO xattach program or the x2x program.  Both of these programs are for 'pointer and keyboard' sharing between separate X displays.  In general the two displays are usually nearby, e.g. on the same desk, and this allows the user to share a single pointer and keyboard between them.  The user moves the mouse to an edge and then the mouse pointer appears to 'jump' to the other display screen.  Thus it emulates what a single X server would do for two screens (e.g. :0.0 and :0.1) The illusion of a single Xserver with multiple screens is achieved by forwarding events to the 2nd one via the XTEST extension.
What the x11vnc bcx_xattach command does is to perform some pointer movements to try to INDUCE xattach/x2x to 'jump' to the other display.  In what follows the ´master' display refers to the one that when it has ´focus' it is basically doing nothing besides watching for the mouse to go over an edge.  The 'slave' display refers to the one to which the mouse and keyboard is redirected to once an edge in the master has been crossed.  Note that the x11vnc executing the bcx_xattach command MUST be the one connected to the *master* display.
Also note that when input is being redirected (via XTEST) from the master display to the slave display, the master display's pointer and keyboard are *grabbed* by xattach/x2x.  x11vnc can use this info to verify that the master/slave mode change has taken place correctly.  If you specify the "ifneeded" option (see below) and the initial grab state is that of the desired final state, then no pointer movements are injected and "DONE,GRAB_OK" is returned.
"str" must contain one of "up", "down", "left", or "right" to indicate the direction of the 'jump'.  "str" must also contain one of "master_to_slave" or "slave_to_master" to indicate the type of mode change induced by the jump.  Use "M2S" and "S2M" as shorter aliases.
"str" may be a "+" separated list of additional tuning options. The "shift=n" option indicates an offset shift position away from (0,0) (default 20).  "final=x+y" specifies the final position of the cursor at the end of the normal move sequence; default 30+30. "extra_move=x+y" means to do one more pointer move after "final" to x+y.  "dt=n" sets the sleep time in milliseconds between pointer moves (default: 40ms) "retry=n" specifies the maximum number of retries if the grab state change fails. "ifneeded" means to not apply the pointer movements if the initial grab state is that of the desired final state. "nograbcheck" means to not check if the grab state changed as expected and only apply the pointer movements (default is to check the grab states.)
If you do not specify "up", etc., to bcx_xattach nothing will be attempted and the command returns the string FAIL,NO_DIRECTION_SPECIFIED.  If you do not specify "master_to_slave" or "M2S", etc., to bcx_xattach nothing will be attempted and the command returns the string FAIL,NO_MODE_CHANGE_SPECIFIED.
Otherwise, the returned string will contain "DONE".  It will be "DONE,GRAB_OK" if the grab state changed as expected (or if "ifneeded" was supplied and the initial grab state was already the desired one.)  If the initial grab state was incorrect, but the final grab state was correct then it is "DONE,GRAB_FAIL_INIT".  If the initial grab state was correct, but the final grab state was incorrect then it is "DONE,GRAB_FAIL_FINAL".  If both are incorrect it will be "DONE,GRAB_FAIL".  Under grab failure the string will be followed by ":p1,k1-p2,k2" where  p1,k1 indicates the initial pointer and keyboard grab states and p2,k2 the final ones. If GRAB_FAIL or GRAB_FAIL_FINAL occurs, the action will be retried up to 3 times; trying to reset the state and sleeping a bit between each try.  Set retry=n to adjust the number of retries, zero to disable retries.
Examples: -R bcx_xattach:down+M2S -R bcx_xattach:up+S2M -R bcx_xattach:up+S2M+nograbcheck+dt=30 -R bcx_xattach:down+M2S+extra_move=100+100
or use -Q instead of -R to retrieve the result text.
End of the bcx_xattach:str description.
The vncconnect(1) command from standard VNC distributions may also be used if string is prefixed with "cmd=" E.g. 'vncconnect cmd=stop'.  Under some circumstances xprop(1) can used if it supports -set (see the FAQ).
If "-connect /path/to/file" has been supplied to the running x11vnc server then that file can be used as a communication channel (this is the only way to remote control one of many x11vnc's polling the same X display) Simply run: 'x11vnc -connect /path/to/file -remote ...'  or you can directly write to the file via something like: "echo cmd=stop > /path/to/file", etc.
-query variable
Like -remote, except just query the value of variable.  "-Q" is an alias for "-query".  Multiple queries can be done by separating variables by commas, e.g. -query var1,var2. The results come back in the form ans=var1:value1,ans=var2:value2,...  to the standard output.  If a variable is read-only, it comes back with prefix "aro=" instead of "ans=".
Some -remote commands are pure actions that do not make sense as variables, e.g. "stop" or "disconnect", in these cases the value returned is "N/A".  To direct a query straight to the X11VNC_REMOTE property or connect file use "qry=..." instead of "cmd=..."
aro=  noop display vncdisplay icon_mode autoport loop loopbg desktopname guess_desktop guess_dbus http_url auth xauth users rootshift clipshift scale_str scaled_x scaled_y scale_numer scale_denom scale_fac_x scale_fac_y scaling_blend scaling_nomult4 scaling_pad scaling_interpolate inetd privremote unsafe safer nocmds passwdfile unixpw unixpw_nis unixpw_list ssl ssl_pem sslverify stunnel stunnel_pem https httpsredir usepw using_shm logfile o flag rmflag rc norc h help V version lastmod bg sigpipe threads readrate netrate netlatency pipeinput clients client_count pid ext_xtest ext_xtrap ext_xrecord ext_xkb ext_xshm ext_xinerama ext_overlay ext_xfixes ext_xdamage ext_xrandr rootwin num_buttons button_mask mouse_x mouse_y grab_state pointer_pos pointer_x pointer_y pointer_same pointer_root pointer_mask bpp depth indexed_color dpy_x dpy_y wdpy_x wdpy_y off_x off_y cdpy_x cdpy_y coff_x coff_y rfbauth passwd viewpasswd
-QD variable
Just like -query variable, but returns the default value for that parameter (no running x11vnc server is consulted)
By default -remote commands are run asynchronously, that is, the request is posted and the program immediately exits.  Use -sync to have the program wait for an acknowledgement from the x11vnc server that command was processed (somehow).  On the other hand -query requests are always processed synchronously because they have to wait for the answer.
Also note that if both -remote and -query requests are supplied on the command line, the -remote is processed first (synchronously: no need for -sync), and then the -query request is processed in the normal way.  This allows for a reliable way to see if the -remote command was processed by querying for any new settings. Note however that there is timeout of a few seconds (see the next paragraph) so if the x11vnc takes longer than that to process the requests the requester will think that a failure has taken place.
The default is to wait 3.5 seconds.  Or if cmd=stop only 1.0 seconds.  If cmd matches 'script:' then it will wait up to 10.0 seconds.  Set X11VNC_SYNC_TIMEOUT to the number of seconds you want it to wait.
-query_retries str
If a query fails to get a response from an x11vnc server, retry up to n times.  str is specified as n[:t][/match]  Optionally the delay between tries may be specified by "t" a floating point time (default 0.5 seconds.)  Note: the response is not checked for validity or whether it corresponds to the query sent.  The query "ping:mystring" may be used to help uniquely identify the query. Optionally, a matching string after a "/" will be used to check the result text.  Up to n retries will take place until the matching string is found in the output text.  If the match string is never found the program's exit code is 1; if the match is found it exits with 0.  Note that there may be stdout printed for each retry (i.e. multiple lines printed out to stdout.)  Example: -query_retries 4:1.5/grab_state
-remote_prefix str
Enable a remote-control communication channel for connected VNC clients.  str is a non-empty string. If a VNC client sends rfbCutText having the prefix str then the part after it is processed as though it were sent via 'x11vnc -remote ...'.  If it begins with neither 'cmd=' nor 'qry=' then 'qry=' is assumed.  Any corresponding output text for that remote control command is sent back to all client as rfbCutText.  The returned output is also prefixed with str.  Example: -remote_prefix DO_THIS:
Note that enabling -remote_prefix allows the remote VNC viewers to run x11vnc -remote commands.  Do not use this option if they are not to be trusted.
-noremote, -yesremote
Do not process any remote control commands or queries.  Do process remote control commands or queries.  Default: -yesremote
A note about security wrt remote control commands.  If someone can connect to the X display and change the property X11VNC_REMOTE, then they can remotely control x11vnc.  Normally access to the X display is protected.  Note that if they can modify X11VNC_REMOTE on the X server, they have enough permissions to also run their own x11vnc and thus have complete control of the desktop.  If the "-connect /path/to/file" channel is being used, obviously anyone who can write to /path/to/file can remotely control x11vnc.  So be sure to protect the X display and that file's write permissions. See -privremote below.
If you are paranoid and do not think -noremote is enough, to disable the X11VNC_REMOTE property channel completely use -novncconnect, or use the -safer option that shuts many things off.
-unsafe
A few remote commands are disabled by default (currently: id:pick, accept:<cmd>, gone:<cmd>, and rawfb:setup:<cmd>) because they are associated with running external programs.  If you specify -unsafe, then these remote-control commands are allowed.  Note that you can still specify these parameters on the command line, they just cannot be invoked via remote-control.
-safer
Equivalent to: -novncconnect -noremote and prohibiting -gui and the -connect file. Shuts off communcation channels.
-privremote
Perform some sanity checks and disable remote-control commands if it appears that the X DISPLAY and/or connectfile can be accessed by other users.  Once remote-control is disabled it cannot be turned back on.
-nocmds
No external commands (e.g.  system(3) , popen(3) , exec(3) ) will be run at all.
-allowedcmds list
list contains a comma separated list of the only external commands that can be run.  The full list of associated options is:
stunnel, ssl, unixpw, WAIT, zeroconf, id, accept, afteraccept, gone, pipeinput, v4l-info, rawfb-setup, dt, gui, ssh, storepasswd, passwdfile, custom_passwd, findauth, crash.
See each option's help to learn the associated external command. Note that the -nocmds option takes precedence and disables all external commands.
-deny_all
For use with -remote nodeny: start out denying all incoming clients until "-remote nodeny" is used to let them in.
These options are passed to LibVNCServer:
-rfbport port
TCP port for RFB protocol
-rfbwait time
max time in ms to wait for RFB client
-rfbauth passwd-file
use authentication on RFB protocol (use 'x11vnc -storepasswd pass file' to create a password file)
-rfbversion 3.x
Set the version of the RFB we choose to advertise
-permitfiletransfer
permit file transfer support
-passwd plain-password
use authentication (use plain-password as password, USE AT YOUR RISK)
-deferupdate time
time in ms to defer updates (default 40)
-deferptrupdate time
time in ms to defer pointer updates (default none)
-desktop name
VNC desktop name (default "LibVNCServer")
-alwaysshared
always treat new clients as shared
-nevershared
never treat new clients as shared
-dontdisconnect
don't disconnect existing clients when a new non-shared connection comes in (refuse new connection instead)
-httpdir dir-path
enable http server using dir-path home
-httpport portnum
use portnum for http connection
-enablehttpproxy
enable http proxy support
-progressive height
enable progressive updating for slow links
-listen ipaddr
listen for connections only on network interface with addr ipaddr. '-listen localhost' and hostname work too.
libvncserver-tight-extension options:
-disablefiletransfer
-ftproot string
set ftp root
$HOME/.x11vncrc, $HOME/.Xauthority
DISPLAY, XAUTHORITY, HOME
The following are set for the auxiliary commands run by -accept, -gone and other cases:
RFB_CLIENT_IP, RFB_CLIENT_PORT, RFB_SERVER_IP, RFB_SERVER_PORT, RFB_X11VNC_PID, RFB_CLIENT_ID, RFB_CLIENT_COUNT, RFB_MODE RFB_STATE RFB_LOGIN_VIEWONLY RFB_LOGIN_TIME RFB_CURRENT_TIME RFB_USERNAME RFB_SSL_CLIENT_CERT
vncviewer(1), vncpasswd(1), vncconnect(1), vncserver(1), Xvnc(1), xev(1), xdpyinfo(1), xwininfo(1), xprop(1), xmodmap(1), xrandr(1), Xserver(1), xauth(1), xhost(1), Xsecurity(7), xmessage(1), XGetImage(3X11), ipcrm(1), inetd(1), xdm(1), gdm(1), kdm(1), ssh(1), stunnel(8), su(1), http://www.tightvnc.com, http://www.realvnc.com, http://www.karlrunge.com/x11vnc/, http://www.karlrunge.com/x11vnc/#faq, https://github.com/LibVNC/x11vnc
x11vnc was written by Karl J. Runge <runge@karlrunge.com>, it is part of the LibVNCServer project <https://github.com/LibVNC/libvncserver>.  This manual page is based one the one written by Ludovic Drolez <ldrolez@debian.org>, for the Debian project (both may be used by others).
UPRECORDS(1)                 General Commands Manual                UPRECORDS(1)
uprecords - provides uptime records
uprecords [ -?abBcfkKMsv ] [ -i <interval> ] [ -m <count> ]
This manual page documents the uprecords program.
uprecords is a program that provides record statistics from the uptimed(8) program.
-?     Show usage
-a     Do not print ANSI codes
-b -B  Sort by time of bootup, oldest entry first. -B reverses. Option implies -s.  Do not print ANSI codes
-c     Do not show current entry if not in top entries
-f     Run continuously in a loop
-k -K  Sort by kernel/system name. -K reverses. Option implies -s.
-M     Show next milestone
-s     Do not print extra statistics
-i <interval> Use <interval> seconds for loop instead of 5, implies -f
-m <count> Show a maximum of top COUNT entries instead of 10
-v     Show version information
uptimed(8)
Rob Kaper <cap@capsi.com>.
This manual page was written by Alan Ford <alan@whirlnet.co.uk>, for the Debian GNU/Linux system (but may be used by others). It was last modified for uptimed version 0.3.7.
XEYES(1)                     General Commands Manual                    XEYES(1)
xeyes - a follow the mouse X demo
xeyes [-option ...]
Xeyes watches what you do and reports to the Boss.
-fg foreground color choose a different color for the pupil of the eyes.
-bg background color choose a different color for the background.
-outline outline color choose a different color for the outline of the eyes.
-center center color choose a different color for the center of the eyes.
-backing { WhenMapped Always NotUseful } selects an appropriate level of backing store.
-geometry geometry define the initial window geometry; see X(7).
-display display specify the display to use; see X(7).
-bd border color choose a different color for the window border.
-bw border width choose a different width for the window border.
-shape  uses the SHAPE extension to shape the window.  This is the default.
+shape  Disables uses the SHAPE extension to shape the window.
X(7), X Toolkit documentation See X(7) for a full statement of rights and permissions.
Keith Packard, MIT X Consortium Copied from the NeWS version written (apparently) by Jeremy Huxtable as seen at SIGGRAPH '88
BLKID(8)                      System Administration                     BLKID(8)
blkid - locate/print block device attributes
blkid --label label | --uuid uuid
blkid [--no-encoding --garbage-collect --list-one --cache-file file] [--output format] [--match-tag tag] [--match-token NAME=value] [device...]
blkid --probe [--offset offset] [--output format] [--size size] [--match-tag tag] [--match-types list] [--usages list] [--no-part-details] device...
blkid --info [--output format] [--match-tag tag] device...
The blkid program is the command-line interface to working with the libblkid(3) library. It can determine the type of content (e.g., filesystem or swap) that a block device holds, and also the attributes (tokens, NAME=value pairs) from the content metadata (e.g., LABEL or UUID fields).
It is recommended to use lsblk(8) command to get information about block devices, or lsblk --fs to get an overview of filesystems, or findmnt(8) to search in already mounted filesystems.
lsblk(8) provides more information, better control on output formatting, easy to use in scripts and it does not require root permissions to get actual information. blkid reads information directly from devices and for non-root users it returns cached unverified information. blkid is mostly designed for system services and to test libblkid(3) functionality.
When device is specified, tokens from only this device are displayed. It is possible to specify multiple device arguments on the command line. If none is given, all partitions or unpartitioned devices which appear in /proc/partitions are shown, if they are recognized.
blkid has two main forms of operation: either searching for a device with a specific NAME=value pair, or displaying NAME=value pairs for one or more specified devices.
For security reasons blkid silently ignores all devices where the probing result is ambivalent (multiple colliding filesystems are detected). The low-level probing mode (-p) provides more information and extra exit status in this case. It’s recommended to use wipefs(8) to get a detailed overview and to erase obsolete stuff (magic strings) from the device.
The size and offset arguments may be followed by the multiplicative suffixes like KiB (=1024), MiB (=1024*1024), and so on for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g., "K" has the same meaning as "KiB"), or the suffixes KB (=1000), MB (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB.