vncserver(1)
๐ 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 thatXvncshould occupy. if you omit it, the next free display number is used. lowkey the laziest and best way to live ngl ๐-depthdepth โ sets the color depth of the virtual X display, in bits per pixel. must be8,16,24,30, or32[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 ๐-fpfont-path โ thevncserverscript will normally examine your system to figure out where it stores its X11 fonts and then generate an appropriate font path forXvncbased on this. but if your system stores its X11 fonts in a location thatvncserverdoes not know about? that may fail ๐ญ. in that case, you can manually specify a font path by using the-fpargument tovncserver. manual override, we love to see it ๐-geometrywidthxheight โ 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.WiandHiare the width and height of Screen i, andXiandYispecify 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 ๐งพ-logfile โ redirects the output ofXvncto file rather than to$vncUserDir/.vnc/{hostname}{display}.log. you get to pick where the lore goes ๐-namestring โ specifies the name of the remote desktop. name your session. give it a personality. it deserves one ๐-noautokillโ normally,vncserverautomatically 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 ๐ค-novncnovnc-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.vncservertracks 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-x509certand-x509keybelow). 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 launchingXvnc. 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 inXvnc, then this generates an initial one-time password and prints it to the console prior to startingXvnc. security but make it printed to your terminal ๐-pixelformat rgbNNN|bgrNNNโ specifies the pixel format of the virtual X display.Xvnccan 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, thenXvncwill perform pixel format conversion prior to sending images to the VNC viewer. this can slow performance ๐. the default pixel format,rgb888, is equivalent toBGRAon little endian systems orARGBon big endian systems. a pixel format ofbgr888is equivalent toRGBAon little endian systems orABGRon 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) to1, which causes the default X startup script to launch the window manager using VirtualGL. more specifically, ifTVNC_VGLis 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 ofTVNC_VGLRUNis"vglrun +wm", but users can override that environment variable in order to pass additional arguments tovglrun, to specify the full path ofvglrun, or to use another command to launch the window manager. fully customizable, no cap ๐ฅ-wmwindow-manager โ this sets the value of theTVNC_WMenvironment variable to window-manager. if theTVNC_WMenvironment 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/xsessionsor/usr/share/wayland-sessions(/usr/local/share/xsessionson *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 ๐ค-x509certcert โ 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 toXvncand the noVNC web server. otherwise, thevncserverscript passes a default value of$vncUserDir/x509_cert.pem๐-x509keykey โ 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 toXvncand the noVNC web server. otherwise, thevncserverscript passes a default value of$vncUserDir/x509_private.pem๐-xstartupscript โ runs a custom X startup script, instead of the default X startup script, after launchingXvnc. this is useful in conjunction with the-fgoption, 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โ startXvncon the next available X display number and use suitable defaults. the "just works" starter pack ๐vncserver :1โ startXvncon Display:1. specific. decisive. slay.vncserver -geometry 1024x768 :1โ startXvncon Display:1with a desktop size of1024x768pixels. 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
- Copyright (C) 2010-2013, 2015-2018, 2020, 2022, 2024-2025 D. R. Commander
- Copyright (C) 2005-2006 Sun Microsystems, Inc
- Copyright (C) 2001, 2002 Constantin Kaplinsky
- Copyright (C) 2000, 2001 Red Hat, Inc
- Copyright (C) 2000, opal@debian.org
- Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms