nvidia-xconfig(1)

🌸 NAME 🌸

okay so bestie, this is the General Commands Manual page for nvidia-xconfig(1) β€” and she is here to manipulate X configuration files for the NVIDIA driver. πŸ’…

nvidia-xconfig β€” manipulate X configuration files for the NVIDIA driver.


πŸ¦‹ SYNOPSIS πŸ¦‹

nvidia-xconfig [ options ]

πŸ’– DESCRIPTION πŸ’–

nvidia-xconfig is a tool meant to give you basic control over configuration options available in the NVIDIA X driver. She does her thing in several steps, and yes, we are going through every single one:

  1. The system X configuration file is found and read into memory. If no configuration file can be found, nvidia-xconfig generates one from scratch using default settings; in this case, nvidia-xconfig will write the configuration to /etc/X11/xorg.conf.
  2. The configuration in memory is modified to support the NVIDIA driver. This consists of changing the display driver to "nvidia", removing the commands to load the "GLcore" and "dri" modules, and adding the command to load the "glx" module.
  3. The configuration in memory is modified according to the options specified on the command line. Please see the NVIDIA README for a description of the NVIDIA X configuration file options. Note that nvidia-xconfig does not perform any validation of the X configuration file options requested on the command line; X configuration file option validation is left for the NVIDIA X driver. πŸ‘‘ no cap, she is not the validator here.
  4. The configuration is written back to the file from which it was read. A backup of the original configuration is created with ".backup" appended. For example, if your X configuration is /etc/X11/xorg.conf then nvidia-xconfig will copy it to /etc/X11/xorg.conf.backup before writing the new configuration. The --post-tree (-T) option can be used to print the new configuration to standard out in tree form instead. This option is useful to see what nvidia-xconfig will do while leaving the original configuration intact.

The source code to nvidia-xconfig is released under the GPL and available here:

⟨https://download.nvidia.com/XFree86/nvidia-xconfig/⟩

Patches are welcome. 🫢


✨ OPTIONS ✨

  • -c XCONFIG, --xconfig=XCONFIG β€” use XCONFIG as the input X config file; if this option is not specified, then the same search path used by the X server will be used to find the X configuration file.
  • -o OUTPUT-XCONFIG, --output-xconfig=OUTPUT-XCONFIG β€” use OUTPUT-XCONFIG as the output X configuration file; if this option is not specified, then the input X configuration filename will also be used as the output X configuration filename.
  • -s, --silent β€” run silently; no messages will be printed to stdout, except for warning and error messages to stderr. 🀫
  • -t, --tree β€” read the X configuration file, print to stdout the X configuration data in a tree format, and exit. cute little peek, no writes.
  • -v, --version β€” print the nvidia-xconfig version and exit.
  • -h, --help β€” print usage information for the common commandline options and exit.
  • -A, --advanced-help β€” print usage information for the common commandline options as well as the advanced options, and then exit.

πŸ”₯ ADVANCED OPTIONS πŸ”₯

  • --acpid-socket-path=ACPID-SOCKET-PATH, --no-acpid-socket-path β€” set this option to specify an alternate path to the Linux ACPI daemon (acpid)'s socket, which the NVIDIA X driver will use to connect to acpid.
  • --add-argb-glx-visuals, --no-add-argb-glx-visuals β€” enables or disables support for OpenGL rendering into 32-bit ARGB windows and pixmaps.
  • --allow-glx-with-composite, --no-allow-glx-with-composite β€” enable or disable the "AllowGLXWithComposite" X configuration option.
  • --busid=BUSID, --no-busid β€” this option writes the specified BusID to the device section of the X configuration file. If there are multiple device sections, then it adds the BusID field to each of them. To add the BusID to only a specific device or screen section, use the '--device' or '--screen' options.
  • --preserve-busid, --no-preserve-busid β€” by default, nvidia-xconfig preserves the existing BusID in the X configuration file only if there are multiple X screens configured for the X server. Use '--preserve-busid' or '--no-preserve-busid' to force the BusID to be preserved or not preserved, overriding the default behavior.
  • --cool-bits=COOL-BITS, --no-cool-bits β€” enable or disable the "Coolbits" X configuration option. Setting this option will enable support in the NV-CONTROL X extension for manipulating GPU clock and GPU fan control settings. Default value is 0. For fan control set it to 4. WARNING: this may cause system damage and void warranties. πŸ’€Like, fr fr be careful.
  • --composite, --no-composite β€” enable or disable the "Composite" X extension.
  • --connected-monitor=CONNECTED-MONITOR, --no-connected-monitor β€” enable or disable the "ConnectedMonitor" X configuration option; setting this option forces the X driver to behave as if the specified display devices are connected to the GPU.
  • --connect-to-acpid, --no-connect-to-acpid β€” enable or disable the "ConnectToAcpid" X configuration option. If this option is set, the NVIDIA X driver will attempt to connect to the Linux ACPI daemon (acpid). Set this option to off to prevent the X driver from attempting to connect to acpid.
  • --constant-dpi, --no-constant-dpi β€” enable or disable the "ConstantDPI" X configuration option, which controls whether the NVIDIA X driver maintains a constant dots per inch (DPI) value by recomputing the reported size in millimeters of the X screen when XRandR changes the size in pixels of the X screen.
  • --custom-edid=CUSTOM-EDID, --no-custom-edid β€” enable or disable the "CustomEDID" X configuration option; setting this option forces the X driver to use the EDID specified. This option is a semicolon-separated list of pairs of display device names and filename pairs; e.g "CRT-0:mp\did.bin". Note that a display device name must always be specified even if only one EDID is specified.
  • --dac-8bit, --no-dac-8bit β€” most Quadro parts by default use a 10 bit color look up table (LUT) by default; setting this option to TRUE forces these graphics chips to use an 8 bit (LUT).
  • -d DEPTH, --depth=DEPTH β€” set the default depth to DEPTH; valid values for DEPTH are 8, 15, 16, 24, and 30.
  • --device=DEVICE β€” the nvidia-xconfig utility operates on one or more devices in the X configuration file. If this option is specified, the device named DEVICE in the X configuration file will be used. If this option is not specified, all the devices within the X configuration file will be used.
  • --disable-glx-root-clipping, --no-disable-glx-root-clipping β€” disable or enable clipping OpenGL rendering to the root window via the "DisableGLXRootClipping" X configuration option.
  • --damage-events, --no-damage-events β€” use OS-level events to notify the X server when a direct-rendering client has performed rendering that needs to be composited to the screen. Improves performance when using GLX with the composite extension.
  • --preserve-driver-name β€” by default nvidia-xconfig changes the display driver to "nvidia" for all configured X screens; this option preserves the existing driver name of each X screen.
  • --egpu, --no-egpu β€” enable or disable the "AllowExternalGpus" X configuration option.
  • -a, --enable-all-gpus β€” delete all existing X screens in the current configuration, then configure an X screen on every GPU in your system. main character energy for your GPUs, honestly.
  • --exact-mode-timings-dvi, --no-exact-mode-timings-dvi β€” forces the initialization of the X server with the exact timings specified in the ModeLine.
  • -E FILE, --extract-edids-from-file=FILE β€” extract any raw EDID byte blocks contained in the specified X log file LOG; raw EDID bytes are printed by the NVIDIA X driver to the X log as hexadecimal when verbose logging is enabled with the "-logverbose 6" X server commandline option. Any extracted EDIDs are then written as binary data to individual files. These files can later be used by the NVIDIA X driver through the "CustomEDID" X configuration option.
  • --extract-edids-output-file=FILENAME β€” when the '--extract-edids-from-file' option is used, nvidia-xconfig writes any extracted EDID to a file, typically "edid.bin" in the current directory. Use this option to specify an alternate filename. Note that nvidia-xconfig, if necessary, will append a unique number to the EDID filename, to avoid overwriting existing files (e.g., "edid.bin.1" if "edid.bin" already exists).
  • --flatpanel-properties=FLATPANEL-PROPERTIES, --no-flatpanel-properties β€” set the flat panel properties. The supported properties are 'dithering' and 'ditheringmode'. Please see the NVIDIA README 'Appendix B. X Config Options' for more details on the possible values and syntax.
  • --flip, --no-flip β€” enable or disable OpenGL flipping.
  • --force-generate β€” force generation of a new X config file, ignoring any existing system X config file. This is not typically recommended, as things like the mouse protocol, keyboard layout, font paths, etc, are setup by your Unix distribution. While nvidia-xconfig can attempt to infer these values, it is best to use your Unix distribution's X config file for the basis of anything that nvidia-xconfig creates.
  • --force-stereo-flipping, --no-force-stereo-flipping β€” normally, stereo flipping is only performed when a stereo drawable is visible. This option forces stereo flipping even when no stereo drawables are visible.
  • --handle-special-keys=WHEN, --no-handle-special-keys β€” specify when the X server should use the builtin keyboard handler to process special key combinations (such as Ctrl+Alt+Backspace); see the X configuration man page for details. The value of WHEN can be 'Always', 'Never', or 'WhenNeeded'.
  • --include-implicit-metamodes, --no-include-implicit-metamodes β€” enable or disable the "IncludeImplicitMetaModes" X configuration option.
  • --keyboard=KEYBOARD β€” so when nvidia-xconfig is out here generating a brand new X config file (which, to be clear, only happens when it literally cannot find a system X config file, or when you passed --force-generate), this tells it "bestie, use KEYBOARD as the keyboard type" instead of poking around the system trying to guess it. Want the full menu of keyboard types? That's the --keyboard-list option's whole thing πŸ’…
  • --keyboard-driver=DRIVER β€” ngl, in most cases nvidia-xconfig figures out the right keyboard driver all on its own (it's either kbd or keyboard). This option is your override button for when you know better. Typical tea: if you're running an X.Org X server, use kdb; if you're on an XFree86 X server, use keyboard. ✨
  • --keyboard-list β€” prints all the available keyboard types that --keyboard actually recognizes to stdout, then dips out (exits). A little menu, no cap πŸŽ€
  • --layout=LAYOUT β€” okay so the way nvidia-xconfig works, it operates on a Server Layout inside the X config file. Pass this and it'll use the layout named LAYOUT in that file. Don't pass it? It just grabs the first Server Layout in the file. Simple as that πŸ¦‹
  • --mode=MODE β€” adds the mode you specified to the mode list. That's it, that's the whole vibe ✨
  • --mode-debug, --no-mode-debug β€” turns the "ModeDebug" X configuration option on or off. When it's enabled, the X driver gets super chatty and prints verbose details about mode validation into the X log file. Very "tell me everything" energy πŸ”
  • --mode-list=MODELIST β€” removes all existing modes from the X configuration's modelist and drops in the one(s) you specified in the MODELIST string instead. Clean slate, main character energy πŸ’…
  • --remove-mode=MODE β€” yeets the specified mode out of the mode list πŸ™ˆ
  • --metamodes=METAMODES β€” adds the MetaMode X configuration option with the value METAMODES, and it will replace any MetaMode option that was already chilling in the X configuration file. Out with the old, in with the new ✨
  • --mouse=MOUSE β€” same deal as the keyboard one, but for mice 🐭 When generating a new X config file (which happens when no system X config file can be found, or when --force-generate is specified), use MOUSE as the mouse type instead of probing the system for it. Possible mouse types live in the --mouse-list option.
  • --mouse-list β€” prints the available mouse types that --mouse recognizes to stdout, then exits. Menu time πŸ“
  • --multisample-compatibility, --no-multisample-compatibility β€” enables or disables the use of separate front and back multisample buffers. Buffers, but make it two πŸ’–
  • --nvidia-cfg-path=PATH β€” so the nvidia-cfg library is what talks to the NVIDIA kernel module to query basic properties of every GPU in the system. Normally nvidia-xconfig only touches this library when it's configuring multiple X screens. This option tells nvidia-xconfig where to look for the library, just in case it can't find it on its own. Honestly? You should normally not need this one at all 🫢
  • --only-one-x-screen β€” disables all but one X screen. One screen only. Solo era πŸ’…
  • --overlay, --no-overlay β€” enable or disable the "Overlay" X configuration option.
  • --cioverlay, --no-cioverlay β€” enable or disable the color index overlay 🌈
  • --overlay-default-visual, --no-overlay-default-visual β€” enable or disable the "OverlayDefaultVisual" X configuration option.
  • --transparent-index=INDEX, --no-transparent-index β€” the pixel to use as transparent when you're using color index overlays. Valid values for TRANSPARENT-INDEX are 0-255. Like, the whole range, bestie ✨
  • -T, --post-tree β€” okay so this is like the --tree option, but it goes through the full process of applying any updates you requested to the X configuration first, and then prints the final config to stdout in a tree format. Effectively it just means the config gets printed to stdout as a tree instead of the results being written to a file. Same result, different delivery method 🌸
  • --power-connector-check, --no-power-connector-check β€” disables or enables the "NoPowerConnectorCheck" X configuration option. (Yes, the wording is flipped like that β€” that's just how it is, iykyk πŸ’€)
  • --probe-all-gpus, --no-probe-all-gpus β€” disables or enables the "ProbeAllGpus" X configuration option. Also flipped wording. We keep it moving ✨
  • --query-gpu-info β€” prints information about every NVIDIA GPU it recognizes in the system. GPU roll call, everybody say hi πŸ‘‘ πŸ”₯
  • --registry-dwords=REGISTRY-DWORDS, --no-registry-dwords β€” enable or disable the "RegistryDwords" X configuration option.
  • --render-accel, --no-render-accel β€” enable or disable the "RenderAccel" X configuration option. Accelerate, bestie πŸ¦‹
  • --render-extension, --no-render-extension β€” disable or enable the "NoRenderExtension" X configuration option. (Flipped again β€” the option is literally called NoRenderExtension, so enabling it disables the thing. Iconic confusion, no notes 😭)
  • --screen=SCREEN β€” nvidia-xconfig operates on one or more screens within a Server Layout in the X config file. Pass this and it uses the screen named SCREEN in that file. Skip it and it uses all the screens within the selected Server Layout in the X config file. All of them, periodt πŸ’…
  • --separate-x-screens, --no-separate-x-screens β€” a GPU that supports multiple simultaneous display devices can either drive those displays in a single X screen, or as separate X screens. With --separate-x-screens, every GPU that currently has an X screen configured gets updated to have two or more X screens configured (the exact number depends on what that GPU can actually do). And --no-separate-x-screens removes any extra configured X screens on each GPU. Full details live in the NVIDIA README description of "Separate X Screens on One GPU" β€” go read it, it's giving lore ✨
  • --x-screens-per-gpu=X-SCREENS-PER-GPU β€” same situation: a GPU that supports multiple simultaneous display devices can drive them all in a single X screen, or as separate X screens. When you pass --x-screens-per-gpu=<quantity>, every GPU that currently has an X screen configured gets updated to have <quantity> X screens. Important: <quantity> has to be greater than 0. Setting <quantity> to 1 is equivalent to specifying --no-separate-x-screens. And again, check the NVIDIA README description of "Separate X Screens on One GPU" for the deep dive 🧚
  • --sli=SLI, --no-sli β€” enable or disable SLI. Valid values for SLI are 'Off' and 'Mosaic'. That's the whole list, don't come at me πŸ’€
  • --stereo=STEREO, --no-stereo β€” enable or disable the stereo mode. Valid values for STEREO are: 0 (Disabled), 1 (DDC glasses), 2 (Blueline glasses), 3 (Onboard stereo), 4 (multi-display clone mode stereo), 5 (SeeReal digital flat panel), 6 (Sharp3D digital flat panel), 7 (Arisawa/Hyundai/Zalman/Pavione/Miracube), 8 (3D DLP), 9 (3D DLP INV), 10 (NVIDIA 3D VISION), 11 (NVIDIA 3D VISION PRO), 12 (HDMI 3D), 13 (Tridelity SL). Whew. Thirteen whole flavors of 3D, we're so back πŸ•ΆοΈ
  • --thermal-configuration-check, --no-thermal-configuration-check β€” disables or enables the "ThermalConfigurationCheck" X configuration option. Keep it cool, literally 🌬️
  • --metamode-orientation=ORIENTATION, --no-metamode-orientation β€” specifies the MetaModeOrientation. Valid values for ORIENTATION are: "RightOf" (the default), "LeftOf", "Above", "Below", or "Clone". Positional queen energy πŸ‘‘
  • --nvidia-xinerama-info, --no-nvidia-xinerama-info β€” enable or disable providing Xinerama information from the NVIDIA X driver.
  • --nvidia-xinerama-info-order=NVIDIA-XINERAMA-INFO-ORDER, --no-nvidia-xinerama-info-order β€” enable or disable the "nvidiaXineramaInfoOrder" X configuration option. NVIDIA-XINERAMA-INFO-ORDER is a comma-separated list of display device names that describes the order in which nvidiaXineramaInfo should be reported. Example: "CRT, DFP, TV". Order matters, always 🌈
  • --ubb, --no-ubb β€” enable or disable the "UBB" X configuration option.
  • --use-edid, --no-use-edid β€” enable or disable use of the EDID (Extended Display Identification Data) from your display device(s). The EDID gets used for driver stuff like building lists of available modes, figuring out valid frequency ranges, and computing the DPI (Dots Per Inch). This option defaults to TRUE (the NVIDIA X driver will use the EDID, when available).
🚨 Real talk: it is NOT recommended that you use this option to globally disable use of the EDID. Instead, use --no-use-edid-freqs or --no-use-edid-dpi to disable the specific uses you actually want gone. Global off is not the move, bestie πŸ’€
  • --use-edid-dpi, --no-use-edid-dpi β€” enable or disable use of the physical size information in the display device's EDID (if there is any) to compute the DPI (Dots Per Inch) of the X screen. Defaults to TRUE β€” the NVIDIA X driver uses the EDID's physical size, when available, to compute the DPI ✨
  • --use-edid-freqs, --no-use-edid-freqs β€” enable or disable use of the HorizSync and VertRefresh ranges given in a display device's EDID (if any). Heads up: EDID-provided range info will override the HorizSync and VertRefresh ranges specified in the Monitor section. Defaults to TRUE β€” the NVIDIA X driver will use frequency information from the EDID, when available 🌸
  • --use-display-device=DISPLAY-DEVICE, --no-use-display-device β€” forces the X driver to use the display device you specified. No negotiating, it's that one πŸ’…
  • --use-events, --no-use-events β€” enable or disable the "UseEvents" X configuration option. Setting this enables the X driver to use system events in some cases when it's waiting on the hardware. With this option, the X driver sets an event handler and waits for the hardware through the poll() system call. This option defaults to FALSE ⏳
  • --virtual=WIDTHxHEIGHT, --no-virtual β€” specifies the virtual screen resolution. It's giving WIDTHxHEIGHT, keep the x πŸ¦‹
  • --x-prefix=X-PREFIX β€” the X installation prefix; the default is /usr/X11R6/. Only under rare circumstances should you need this option, so like... don't touch it unless you have to πŸŽ€
  • --color-space=COLORSPACE, --no-color-space β€” enable or disable the "ColorSpace" X configuration option. Valid values for "COLORSPACE" are: "RGB" and "YCbCr444" 🌈
  • --color-range=COLORRANGE, --no-color-range β€” sets the "ColorRange" X configuration option. Valid values for "COLORRANGE" are: "Full" and "Limited". Full range or limited range, pick your fighter ⭐
  • --3dvision-usb-path=3DVISION-USB-PATH β€” set this option to specify the sysfs path of the connected USB dongle. Dongle located πŸŽ€
  • --3dvisionpro-config-file=3DVISIONPRO-CONFIG-FILE β€” tells nvidia-xconfig where the NVIDIA 3DVisionPro config file lives. bestie, make sure the X server can read AND write that file, ok? the NVIDIA X driver stashes the hub + pairing config in there so it survives X restarts πŸ”. if you don't pass this option, your 3D VisionPro config just... won't be stored. gone. poof. πŸ’€
  • --3dvision-display-type=3DVISION-DISPLAY-TYPE, --no-3dvision-display-type β€” for when NVIDIA 3D Vision is on but your display isn't 3D Vision ready (rude of it tbh) β€” use this to spell out the display type. valid values are: 0 (assume it's a CRT), 1 (assume it's a DLP) and 2 (assume it's a DLP TV and turn on the checkerboard output) ✨
  • --base-mosaic, --no-base-mosaic β€” turns the "BaseMosaic" X configuration option on or off πŸŽ€
  • --restore-original-backup β€” restores a backup of your X config that was made before nvidia-xconfig did literally anything to it β€” but only if that backup exists. this special backup happens when nvidia-xconfig edits an X config file it's never touched before (which we assume is a file that predates the NVIDIA X driver ever showing up πŸ‘Ά). for example: nvidia-xconfig will copy /etc/X11/xorg.conf to /etc/X11/xorg.conf.nvidia-xconfig-original the very first time it makes changes to that file. cute, right? 🫢
  • --allow-empty-initial-configuration, --no-allow-empty-initial-configuration β€” lets the X server start even when it detected zero connected display devices 😭 (yes, truly. not a single one.)
  • --inband-stereo-signaling, --no-inband-stereo-signaling β€” turns the "InbandStereoSignaling" X configuration option on or off ✨
  • --force-yuv-420, --no-force-yuv-420 β€” turns the "ForceYUV420" X configuration option on or off. so here's the vibe: if your current display and GPU both support uncompressed RGB 4:4:4 output and YUV 4:2:0 compressed output with the current mode, then RGB 4:4:4 wins by default. this option forces YUV 4:2:0 output instead (where it's supported). main character choice of you πŸ’…
  • --force-composition-pipeline=FORCE-COMPOSITION-PIPELINE, --no-force-composition-pipeline β€” turns the "ForceCompositionPipeline" X configuration option on or off 🌸
  • --force-full-composition-pipeline=FORCE-FULL-COMPOSITION-PIPELINE, --no-force-full-composition-pipeline β€” turns the "ForceFullCompositionPipeline" X configuration option on or off 🌸
  • --allow-hmd=ALLOW-HMD, --no-allow-hmd β€” turns the "AllowHMD" X configuration option on or off πŸ¦‹
  • --prime, --no-prime β€” enables PRIME for the generated X config file. ⚠️ cannot be run with --no-busid or --no-allow-empty-initial-configuration. on a system with more than 1 GPU, tell it which GPU to use for PRIME with --busid, otherwise the first available one gets picked (no thoughts, head empty). and heads up: to actually enable PRIME you gotta run these after it's done:
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

🌈 EXAMPLES 🌈

  • nvidia-xconfig β€” reads an existing X config file and adapts it to use the NVIDIA driver. if no X config file can be found, it makes a brand new one at /etc/X11/xorg.conf with default settings ✨
  • nvidia-xconfig --post-tree --metamode-orientation=clone β€” reads the existing X configuration file, adds the MetaModeOrientation option, and then prints the resulting config file to standard out in tree form 🌳. the configuration file itself is not modified, king behavior honestly πŸ‘‘
  • nvidia-xconfig --enable-all-gpus β€” examines the system and configures an X screen for each display device it finds πŸ‘€
  • nvidia-xconfig --mode=1600x1200 β€” adds a 1600x1200 mode to an existing X configuration πŸŽ€
  • nvidia-xconfig --mode-list=1600x1200 1280x1024 β€” removes any existing modes from the X configuration file and replaces them with "1600x1200" and "1280x1024" ✨
  • nvidia-xconfig --metamodes=1024x768 +0+0, 1024x768 +1024+0 β€” adds the MetaMode "1024x768 +0+0, 1024x768 +1024+0" to the existing X configuration file, replacing any existing MetaModes X configuration option πŸ’…
  • nvidia-xconfig --only-one-x-screen --sli=Auto β€” configures the X server to have just one X screen that will use SLI when it's available ⚑

πŸ‘‘ AUTHOR πŸ‘‘

Aaron Plattner NVIDIA Corporation

πŸ¦‹ SEE ALSO πŸ¦‹

nvidia-settings(1), /usr/share/doc/NVIDIA_GLX-1.0/README.txt

Copyright Β© 2005-2010 NVIDIA Corporation.


okay bestie that's the whole thing, you're officially an nvidia-xconfig scholar πŸŽ“βœ¨ this masterpiece is from nvidia-xconfig 615.78.08, dated 2026-10-06, and it lives at nvidia-xconfig(1) β€” go forth and configure responsibly, ily, bye πŸ«ΆπŸ’œ

πŸ“¦ where this page comes from
  • arch rolling: nvidia-utils 615.78.08-1 Β· LicenseRef-NVIDIA-Driver-License-Agreement
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms