This is a list of display servers based on X11, Wayland, Linux framebuffer and other systems.
| Display server | Software license | Language | Libraries | Active | Operating systems | Shell type | Type | Remarks | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Protocol | Other | Linux | BSDs | Other | |||||||
| COSMIC | GPLv3 | Rust | Smithay | Iced | Yes | Yes | No | No | Separate | Floating and tiling desktop compositor | Designed for Pop!_OS |
| Enlightenment | BSD license | C | libwayland-server (MIT License) | EFL | Yes | Yes | Yes | POSIX | Built-in | Floating desktop compositor | Default for the Enlightenment desktop environment |
| Hikari | MIT License [1] | C | wlroots, [2] libinput2 | Until 2022 | Yes | Yes | POSIX | Separate (wlr-protocols) | Floating desktop compositor | Targets primarily FreeBSD, Inspired by Calm window manager | |
| Hyprland | BSD license [3] | C++ | aquamarine, [4] libinput2 | Yes | Yes | Yes | POSIX | Separate (wlr-protocols) | Tiling / dynamic, floating mode also supported | Offers smooth animations, rounded corners and blur; while no longer based on wlroots, still supports its protocols | |
| KWin | GPL | C++ | Qt 5 | Yes | Yes | Yes | POSIX | Built-in | Floating desktop compositor with plugin support | Default for KDE | |
| labwc | GPLv2 [5] | C | wlroots, libinput2 | Yes | Yes | Yes [6] | ? | Separate (wlr-protocols), but has a built-in menu system | Minimal floating desktop compositor | Inspired by Openbox, used by Raspberry Pi OS | |
| Lipstick [7] | LGPL 2.1 | C++ | Qt 5 | Yes | Yes | No | No | Built-in | Mobile UI manager | Based on QML markup, intended for Sailfish OS | |
| Mazecompositor | MIT License | C++ | Qt 5 | No | Yes | No | No | No shell | Compositor presented as a 3D game-like maze | Toy / Demo | |
| Mir | GPL | C++ | Qt 5, GTK | Yes | Yes | No | No | Provided via plugin | Kiosk/embedded | Canonical's own embedded device-targeting compositor | |
| Muffin | GPL | C | libinput2 | Yes | Yes | Yes | POSIX | Built-in | Floating desktop compositor | Default for Cinnamon | |
| Mutter | GPL | C | libinput2 | Yes | Yes | Yes | POSIX | Built-in | Floating desktop compositor | Default for GNOME | |
| niri | MIT License [8] | Rust | Yes | Yes | ? | ? | Separate (wlr-protocols) | Scrollable, tiling compositor | |||
| orbment | GPL 3+ | C | wlc, libinput2 | No | Yes | No | No | No shell | Tiling compositor | No code contribution since 2016 | |
| River | GPLv3 [9] | Zig | wlroots, [10] libinput2 | Yes | Yes | Yes | POSIX | Separate (wlr-protocols | Generic compositor intended to use a separate window manager | ||
| Sway | MIT License [11] | C | wlroots, [12] libinput2 | Yes | Yes | Yes | POSIX | Separate (wlr-protocols) | Tiling desktop compositor | i3 replication | |
| Way Cooler | MIT License [13] | Rust | wlc, libinput2 | No | Yes | Yes | POSIX | Separate (D-Bus) | Tiling desktop compositor | Designed to replace AwesomeWM, unmaintained since late 2019 | |
| Wayfire | MIT License [14] | C++ | wlroots, [15] libinput2 | Yes | Yes | Yes | POSIX | Separate (wlr-protocols) | 3D compositor with extensive plugin support | Compiz-inspired | |
| Weston | MIT License | C | libinput, libweston | Yes | Yes | Yes | POSIX | Built-in (via plugin) | Modern-style window compositing | Reference Implementation | |
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 [16] provides device detection via udev, device handling, input device event processing and abstraction. [17] libinput also provides a generic X.Org input driver. [18] libinput support was first merged in Weston 1.5. and is also used by Mutter.