X Window System
lastmod 2026-08-08created 2014-03-1854 edits
The X Window System (commonly known as X11 or X) is software and a network protocol for implementing GUI environments on Unix-like operating systems. Version X11 is mainly used today, and X.org implements it as an open-source version, which is used as the default GUI system in most Linux distributions, including Red Hat.
The X Window System supports a server-client network model and is designed so that the X server and X clients run separately from each other. Because of this, one of its key features is that X Window clients can use programs on the X server. X Window supports window managers that let you freely use icons, menus, and panels, as well as open desktop environments such as KDE, Gnome, and Xfce.
Categories
Common (categories)
- freedesktop.org (XDG; X Desktop Group)
- X Window System (x11; xserver)
- X Display Manager (xdm)
- X window manager
Implementation
- X.Org Server (xorg; X.Org)
- XQuartz
- XFree86
- Phoenix (X server) - A modern X server written from scratch in Zig
Programming
- Xlib: x11 library for C Programming.
- XCB
- X:Programming
X.Org
Spec
X11 Window System Protocol
Common Tools
Composite
- Xorg - ArchWiki # Composite
- See Compositing window manager for details.
- Picom
- Xcompmgr
- Unagi
Plugins
- xserver-xorg-video-dummy: Dummy video
x11 apps
- iceauth: A tool for manipulating ICE protocol authentication records
- rgb
- sessreg: A simple program for managing utmp/wtmp entries
- xclock: Shows the current time - handy for displaying the current time with something like OBS.
- xcmsdb: a device color characteristic utility for the X Color Management System
- xgamma: A tool to query and set the monitor's gamma correction
- xhost: Controls which users can access the extended X-Windows on the current host machine. - A really, really, really dangerous program you should avoid using whenever possible .... or so they say.
- xmodmap: A utility for modifying keymaps and pointer button mappings in X
- xrandr: Command-line interface to the RandR extension; resolution/monitor settings
- xrdb: A tool for managing the X server resource database
- xrefresh: A tool that forces the X screen to be redrawn
- xset: A tool for setting various X server parameters
- xsetmode and xsetpointer: Tools for adjusting X input devices
- xsetroot: A tool for adjusting the appearance of the root window
- xstdcmap: A utility for selectively defining standard colormap properties
- xvidtune: A tool for modifying X server modelines for the user's monitor. (information found in synaptic package manager)
- xev: print contents of X events.
- xdpyinfo
- xprop - Shows the properties (e.g. WM_CLASS) of the selected window. - Unfortunately, default programs like
gnome-*can't be selected... - xwininfo - Shows information (e.g. id, title) about the selected window. - Unfortunately, default programs like
gnome-*can't be selected... - wmctrl - A command used to control windows in EWMH- and NetWM-compatible X window managers. Some common tasks are listing, resizing, and closing windows.
- xdotool - command-line X11 automation tool
- xvfb - A "virtual display" tool for headless app development (
sudo apt install xvfb)
x11-utils
- xfd - display all the characters in an X font
Applications
- dmenu
- xterm: Terminal emulator for the X Window System
Ref
- ArchLinux:Dirver: Before proceeding, you need to install a graphics driver.
ETC
- xloadimage: Sets the background image.
- xpmroot: Sets the background image.
- feh: Sets the background image.
- xbindkeys: Binds commands to keyboard combinations.
- xdotool
- xte
- xdotool - Shows a window's position, name, and so on.
Why the name X11?
The short version is that X11 was the first widely-disseminated version, and it turned out to be good enough to remain as-is for thirty years.
X is the X Window System, which at its core is a protocol; the number identifies the version of the protocol. X1 was released in 1984 inside MIT, and quickly evolved to X9 in 1985; an external port to RT/PC required a protocol change, so X10 followed shortly thereafter. At this point X “escaped” to other organisations, but its developers really wanted a more device-neutral re-design. DEC contributed to this, and released X11 in 1987. (This is a quick summary of Wikipedia’s history of X.)
The protocol itself is stable, because it’s device-neutral and extensible. As a result, there has been no absolute need for a new protocol version (X12); as Bob Scheifler put it when he presented version 11, “We don’t think it will ever change again, okay. There’s not gonna be a version 12.” The wide dissemination of X11 also means it’s harder to introduce a new protocol version, and instead, new features are introduced as extensions (sometimes jumping through hoops).
There are a number of limitations in X11, and there’s even an “X12” page (which isn’t about an actual X12 project, just a list of what it would have to do and relevant resources).
The successor of course is likely to be Wayland, which is developed by X developers.
As pointed out by Wilson, the letter X was picked as a follow-on to W, which was the windowing system of the V operating system.
X Desktop Group (XDG)
- Back to Basics With X and systemd
- X without Display Manager - Gentoo Wiki
- Ubuntu wiki - Spec: Basic Multiseat Support for LightDM
Environment variables
- XDG_VTNR
- Arch Linux now provides this by default.
/etc/X11/xinit/xserverrcwill start your X session onXDG_VTNR, if the environment variable is set. Therefore, if you’re using Arch, stop reading here and update to at least xorg-xinit 1.3.2-3.
Check XDG VT number
if [[ $XDG_VTNR -ne 3 && $XDG_VTNR -ne 4 ]]; then
echo "VT number is must be 3 or 4 (current: $XDG_VTNR)"
exit 1
fi
Desktop environments and window managers for X11
| DEs | Full-featured | |
| Mid-range | Trinity, CDE, Xfce, IRIX Interactive Desktop | |
| Lightweight | EDE (FLTK), Etoile (GNUstep), LXDE (GTK) / Razor-qt (Qt), Mezzo, ROX, UDE, Sugar | |
| Shell | Unity, GNOME Shell, Cinnamon, KDE Plasma | |
| WMs | Compositing | Compiz, Metacity, Mutter, KWin |
| Tiling | ||
| Stacking | amiwm, twm, cwm, mwm, FVWM, IceWM, Enlightenment, Blackbox, Fluxbox, Openbox, Window Maker, AfterStep, PekWM | |
| Components | Window Manager, Window decorator, Dock, Title bar, Task bar, Notification Area, Pager | |
| Related reading | Windowing system, Desktop environment, GUI widget, X Window System, X window manager, Virtual desktop, OpenGL, DirectX, GPU, Mouse, Keyboard, WIMP, GUI, Widget toolkit, Turbo Vision, Qt, GTK, AIGLX, XGL, Shell (computing), Painter's algorithm, Resolution independence | |
Troubleshooting
OSX XQuartz secure connection
See XQuartz.
See also
Favorite site
- Wikipedia (en) description of X11
- [Recommended] Wikibooks Guide to X11
- Alacritty
- Alacritty:KoreanImeOrder
- ArchLinux:Setup
- Awesome
- Computer Sciences
- CUDA:Troubleshooting
- Cvt
- Desktop Entry
- Desktop environment
- Display manager
- Docker
- Dwm
- Extended Window Manager Hints
- Freedesktop.org
- I3
- IntelliJ IDEA
- Inter-Client Communication Conventions Manual
- Maim
- Monitor-input-rs
- OpenCV:Troubleshooting
- OpenSSH
- Pbcopy
- Pbproxy
- Remote desktop software
- St
- Startx
- Typeface
- User Interface
- Wayland
- Window Manager
- Wmctrl
- X PixMap
- X window manager
- X:Programming
- Xbindkeys
- XCB
- Xclip
- Xclock
- Xdotool
- Xfd
- XFree86
- Xlib
- Xmonad
- Xorg
- Xorg.conf
- Xorg.profile
- Xprop
- XQuartz
- Xrandr
- Xsel
- Xvfb
- Xwd