vncserver(1)

๐Ÿ“ฆ
version 3.3.1 ยท 2 versions
, in nixpkgs unstable

๐Ÿ’… vncserver(1) โ€” TurboVNC, bestie edition ๐ŸŽ€

okay so this is the vncserver(1) manual page from TurboVNC, and I'm gonna walk you through it like we're texting at 2am. grab a snack. ๐Ÿ“


โœจ NAME โœจ

vncserver โ€” a wrapper to launch the TurboVNC Server. that's it. that's the whole job. it's the little script that gets the whole party started ๐Ÿ’–


๐ŸŒธ SYNOPSIS ๐ŸŒธ

vncserver [:display] [vncserver-options...] [Xvnc-options...]

vncserver -kill :display

vncserver -list

vncserver -help

four whole modes of existence, and honestly? each one ate ๐Ÿ‘‘


๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

okay so vncserver is a wrapper script for Xvnc(1), which is the VNC (Virtual Network Computing) X server. think of it as Xvnc's hype person who handles all the annoying setup for you ๐Ÿซถ

and here's the iconic part: Xvnc provides all of the capabilities of a standard X server, but it does not connect to a physical display. instead, Xvnc creates a virtual X display that you can view or control remotely using a VNC viewer. no monitor required, no desk required, no being normal about it required. it's giving main character energy โœจ


๐Ÿ’… OPTIONS ๐Ÿ’…

so here's the vibe: you can add Xvnc options to the vncserver command line, and they get passed through to Xvnc without modification. no gatekeeping, no edits, straight through ๐Ÿ’ซ

the options that vncserver itself provides are:

  • :display โ€” the X display number that Xvnc should occupy. if you omit it, the next free display number is used. lowkey the laziest and best way to live ngl ๐Ÿ˜Œ
  • -depth depth โ€” sets the color depth of the virtual X display, in bits per pixel. must be 8, 16, 24, 30, or 32 [default: 24]. those are the only valid answers, no improvising ๐Ÿ”ฅ
  • -fg โ€” runs the X startup script as a foreground process. this has two effects: (1) the TurboVNC session can be aborted with CTRL+C, and (2) the TurboVNC session will exit as soon as the user logs out of the window manager in the session. this may be necessary when launching TurboVNC from within certain grid computing environments. so it's niche but when you need it you NEED it ๐Ÿ’€
  • -fp font-path โ€” the vncserver script will normally examine your system to figure out where it stores its X11 fonts and then generate an appropriate font path for Xvnc based on this. but if your system stores its X11 fonts in a location that vncserver does not know about? that may fail ๐Ÿ˜ญ. in that case, you can manually specify a font path by using the -fp argument to vncserver. manual override, we love to see it ๐Ÿ’–
  • -geometry widthxheight โ€” sets the width and height of the virtual X display [default: 1240x900]. classic. simple. iconic.
  • -geometry W0xH0+X0+Y0[,W1xH1+X1+Y1,...,WnxHn+Xn+Yn] โ€” sets the multi-screen geometry of the virtual X display. Wi and Hi are the width and height of Screen i, and Xi and Yi specify the offset of Screen i relative to the origin. the total width and height are determined by the bounding box of all screens. multi-monitor girlies, this one's for you ๐Ÿ–ฅ๏ธ๐Ÿ–ฅ๏ธ
  • -help โ€” prints a brief list of command-line options. short king behavior ๐Ÿ‘‘
  • -kill :display โ€” stops the TurboVNC session that is currently running on the specified display. bye bestie ๐Ÿ’€โœจ
  • -list โ€” lists the display numbers and process ID's of all TurboVNC sessions currently running under your account on this host. receipts, basically ๐Ÿงพ
  • -log file โ€” redirects the output of Xvnc to file rather than to $vncUserDir/.vnc/{hostname}{display}.log. you get to pick where the lore goes ๐ŸŽ€
  • -name string โ€” specifies the name of the remote desktop. name your session. give it a personality. it deserves one ๐Ÿ’œ
  • -noautokill โ€” normally, vncserver automatically kills the TurboVNC session when the X startup script exits (which, in most cases, means that the session will be killed automatically whenever the user logs out of the window manager running in the session). this option disables that behavior. no auto-kill, no surprise grief ๐Ÿ˜ค
  • -novnc novnc-dir โ€” automatically starts a simple web server that serves up noVNC (an HTML 5/JavaScript VNC viewer) from directory novnc-dir when starting a TurboVNC session. vncserver tracks the process ID of the noVNC web server and automatically kills that process along with the TurboVNC session. noVNC works in any web browser (including on mobile devices), but since it only supports VNC Password authentication, it is strongly recommended that it be used only with one-time passwords unless the connections are encrypted (see -x509cert and -x509key below). also the performance of noVNC will generally be much less than that of the TurboVNC Viewer. convenient, yes. fast, no ๐Ÿ™ˆ
bestie please actually read the noVNC warning. one-time passwords or encryption, or it's giving unsecured ๐Ÿ˜ญ
  • -noxstartup โ€” does not run the default X startup script (xstartup.turbovnc) after launching Xvnc. this option allows you to manually start a window manager in your TurboVNC session or to run a full-screen application without a window manager. build your own destiny ๐Ÿฆ‹
  • -otp โ€” if the One-Time Password authentication method is enabled and permitted in Xvnc, then this generates an initial one-time password and prints it to the console prior to starting Xvnc. security but make it printed to your terminal ๐Ÿ”
  • -pixelformat rgbNNN|bgrNNN โ€” specifies the pixel format of the virtual X display. Xvnc can use any pixel format you choose, but if this pixel format does not match the pixel format of the display on which the VNC viewer is running, then Xvnc will perform pixel format conversion prior to sending images to the VNC viewer. this can slow performance ๐ŸŒ. the default pixel format, rgb888, is equivalent to BGRA on little endian systems or ARGB on big endian systems. a pixel format of bgr888 is equivalent to RGBA on little endian systems or ABGR on big endian systems. endianness discourse, truly the most unhinged topic ๐Ÿ’€
  • -uds โ€” listen on a Unix domain socket rather than a TCP port for connections from VNC viewers. socket over port, if you know you know ๐Ÿงš
  • -vgl โ€” this sets an environment variable (TVNC_VGL) to 1, which causes the default X startup script to launch the window manager using VirtualGL. more specifically, if TVNC_VGL is set, then the default X startup script will launch the window manager using a command specified in another environment variable (TVNC_VGLRUN). the default value of TVNC_VGLRUN is "vglrun +wm", but users can override that environment variable in order to pass additional arguments to vglrun, to specify the full path of vglrun, or to use another command to launch the window manager. fully customizable, no cap ๐Ÿ”ฅ
  • -wm window-manager โ€” this sets the value of the TVNC_WM environment variable to window-manager. if the TVNC_WM environment variable is set, then the default X startup script will launch the specified window manager if a corresponding session desktop file exists under /usr/share/xsessions or /usr/share/wayland-sessions (/usr/local/share/xsessions on *BSD systems) and fail otherwise. if the window manager is not specified, then the default X startup script will launch the "gnome", "ubuntu", "mate", or "xfce" window manager (in that order) if a corresponding session desktop file exists. otherwise, it will fail. so like. it's picky. respect it ๐Ÿ˜ค
  • -x509cert cert โ€” specifies the X.509 signed certificate file (in PEM format) to use with X.509 encryption, the built-in WebSocket proxy, and the noVNC web server. if this argument is specified, then it is passed to Xvnc and the noVNC web server. otherwise, the vncserver script passes a default value of $vncUserDir/x509_cert.pem ๐ŸŽ€
  • -x509key key โ€” specifies the X.509 private key file (in PEM format) to use with X.509 encryption, the built-in WebSocket proxy, and the noVNC web server. if this argument is specified, then it is passed to Xvnc and the noVNC web server. otherwise, the vncserver script passes a default value of $vncUserDir/x509_private.pem ๐Ÿ”‘
  • -xstartup script โ€” runs a custom X startup script, instead of the default X startup script, after launching Xvnc. this is useful in conjunction with the -fg option, since it allows for running a full-screen application (such as a game or a virtualization solution) in TurboVNC without a window manager and causes the TurboVNC session to terminate whenever the application exits. game mode: engaged ๐ŸŽฎ

๐ŸŒˆ EXAMPLES ๐ŸŒˆ

  • vncserver โ€” start Xvnc on the next available X display number and use suitable defaults. the "just works" starter pack ๐Ÿ’–
  • vncserver :1 โ€” start Xvnc on Display :1. specific. decisive. slay.
  • vncserver -geometry 1024x768 :1 โ€” start Xvnc on Display :1 with a desktop size of 1024x768 pixels. custom size era โœจ
  • vncserver -kill :1 โ€” shut down the TurboVNC session running on Display :1. closing the tab, but for servers ๐Ÿ’€

๐Ÿงš CONFIGURATION FILES ๐Ÿงš

  • /nix/store/02441w1zv1pwivjqd3psdkchj7gcncdy-turbovnc-3.3.1/etc/turbovncserver.conf โ€” System-wide configuration file for the TurboVNC Server.
  • $HOME/.vnc/turbovncserver.conf โ€” Per-user configuration file for the TurboVNC Server. settings in this file override the system-wide configuration. per-user always wins, as it should ๐Ÿ‘‘

these files allow the vncserver defaults to be configured persistently on a per-user or system-wide basis using Perl variables. see /nix/store/02441w1zv1pwivjqd3psdkchj7gcncdy-turbovnc-3.3.1/etc/turbovncserver.conf for a description of each variable. yes bestie, Perl. we don't question it, we just say thank you ๐Ÿ™


๐Ÿ”ฅ SEE ALSO ๐Ÿ”ฅ

Xvnc(1), vncviewer(1), vncpasswd(1), vncconnect(1)

the whole friend group fr fr ๐Ÿ’œ


๐ŸŽ€ AUTHORS ๐ŸŽ€

VNC was originally developed at AT&T Laboratories Cambridge. TightVNC additions were implemented by Constantin Kaplinsky. TurboVNC, based on TightVNC, is provided by The VirtualJ Project โ€” okay wait no, it's The VirtualGL Project ๐Ÿ˜ญ (typo caught! it's VirtualGL). and many other people participated in development, testing and support ๐Ÿซถ

Man page authors:

  • Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>
  • Tim Waugh <twaugh@redhat.com>
  • Constantin Kaplinsky <const@tightvnc.com>
  • D. R. Commander <information@turbovnc.org>

and that's the whole page, bestie ๐Ÿ’– huge shoutout to TurboVNC, this doc is dated October 2025, and it's the vncserver(1) man page โ€” go start a virtual display and be iconic ๐ŸŒธโœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from
  • nixpkgs unstable: turbovnc 3.3.1
  • ๐Ÿ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms