# List of display servers

This is a list of display servers.

## X11

* Cygwin/X
* KDrive
* Low Bandwidth X
* MacX
* Mir (display server)
* MKS X/Server
* Multi-Pointer X
* Reflection X
* RISCwindows
* WiredX
* X Window System
* X.Org Server
* X-Win32
* X386
* Xapollo
* XDarwin
* Xephyr
* XFree86
* Xming
* Xmove
* Xnest
* Xnews (X11 server)
* Xpra
* XQuartz
* Xsgi
* Xsun
* Xvfb
* XWinLogon

## Wayland

Wayland :
| Display server | Software license | Language | Libraries | Libraries | Operating systems | Operating systems | Operating systems | Type | Remarks |
| Display server | Software license | Language | Protocol | Other | Linux | BSDs | Other | Type | Remarks |
| COSMIC Shell | GPLv3 | Rust | Smithay | Iced | Yes | No | No | Modern-style window compositing | Designed for Pop!_OS |
| Enlightenment | BSD license | C | libwayland-server (MIT License) | EFL | Yes | Yes | POSIX | Modern-style window compositing | Default for the Enlightenment desktop environment |
| KWin | GPL | C++ | libwayland-server (MIT License) | Qt 5 | Yes | Yes | POSIX | Modern-style window compositing | Default for KDE |
| orbment | GPL 3+ | C | libwayland-server (MIT License) | wlc, libinput$^2$ | Yes | No | No | (unknown) | No code contribution since 2016 |
| Lipstick | LGPL 2.1 | C++ | libwayland-server (MIT License) | Qt 5 | Yes | No | No | Mobile UI manager | Based on QML markup |
| Mazecompositor | MIT License | C++ | libwayland-server (MIT License) | Qt 5 | Yes | No | No | 3D compositor | Toy / Demo |
| Mir | GPL | C++ | libwayland-server (MIT License) | Qt 5, GTK | Yes | No | No | Mobile app-style | Canonical's own embedded device-targeting compositor |
| Mutter | GPL | C | libwayland-server (MIT License) | libinput$^2$ | Yes | Yes | POSIX | Modern-style window compositing / Mobile app-style | Default for GNOME 4 |
| Weston | MIT License | C | libwayland-server (MIT License) | libinput | Yes | Yes | POSIX | Modern-style window compositing | Reference Implementation |
| Hyprland | BSD license | C++ | libwayland-server (MIT License) | aquamarine, libinput$^2$ | Yes | Yes | POSIX | Tiling / dynamic | Offers smooth animations, rounded corners and blur |
| Sway | MIT License | C | libwayland-server (MIT License) | wlroots, libinput$^2$ | Yes | Yes | POSIX | Tiling / dynamic | i3 replication |
| Way Cooler | MIT License | Rust | libwayland-server (MIT License) | wlc, libinput$^2$ | Yes | Yes | POSIX | Tiling / dynamic | Designed to replace AwesomeWM, unmaintained since late 2019 |
| Wayfire | MIT License | C++ | libwayland-server (MIT License) | wlroots, libinput$^2$ | Yes | Yes | POSIX | 3D compositor | Compiz-inspired |
| Hikari | MIT License | C | libwayland-server (MIT License) | wlroots, libinput$^2$ | Yes | Yes | POSIX | Stacking | Targets primarily FreeBSD, Inspired by Calm window manager |
| River | GPLv3 | Zig | libwayland-server (MIT License) | wlroots, libinput$^2$ | Yes | Yes | POSIX | Tiling / dynamic | |
| labwc | GPLv2 | C | libwayland-server (MIT License) | wlroots, libinput$^2$ | Yes | Yes | ? | Stacking | Inspired by Openbox |
$^1$ A pivotal difference between Android and the other Linux kernel-based operating systems is the C standard library: Android's libbionic is different in that it does not aim to support POSIX to the same extent as the other libraries. With the help of libhybris it is possible to run Android-only software on other Linux kernel based operating systems, as long as this software does not depend on subsystems found only in the Android-forked Linux kernel, such as binder, pmem, ashmem, etc. Whether software programmed for Linux can run on Android, depends entirely on the extent to which libbionic matches the API of the glibc.
$^2$ libinput provides device detection via udev, device handling, input device event processing and abstraction. libinput also provides a generic X.Org input driver. libinput support was first merged in Weston 1.5. and is also used by Mutter.

## Linux framebuffer

* DirectFB
* DirectFB2
* DirectFBGL

## Other

* Quartz Compositor
* SPICE
* SurfaceFlinger