Desktops#
A desktop environment bundles a window manager (or compositor), a panel, a file manager, a settings centre, a session manager, and the cohesive set of libraries the bundled apps share. The operator picks one for convenience; the cost is a wider attack surface and a set of session-wide assumptions baked into every bundled tool.
GNOME and KDE are the two heavyweights. GNOME is Wayland-first with Mutter as the compositor and a deliberately minimal UI. KDE ships Plasma 6 on Wayland (and still on X11) with KWin and a deeply configurable shell. XFCE, MATE, Cinnamon, and LXQt are lighter, X11-anchored, and friendlier to older hardware. Pantheon (elementary) and Budgie are smaller curated DEs.
DE |
Compositor / WM |
Default server |
Toolkit |
Notes |
|---|---|---|---|---|
|
Mutter |
Wayland |
GTK 4 |
Minimal, opinionated, portal-driven security. |
|
KWin |
Wayland (X11 still supported) |
Qt 6 |
Highly configurable; powerful keyboard daemon ( |
|
xfwm4 |
X11 |
GTK 3 |
Lightweight; stable; mature. |
|
Marco |
X11 |
GTK 3 |
GNOME 2 fork. Familiar to long-time Linux users. |
|
Muffin (fork of Mutter) |
X11 |
GTK 3 |
Linux Mint default. Traditional layout. |
|
Openbox |
X11 |
Qt 5 |
Light Qt-based DE. |
|
Gala |
X11 |
GTK 3 |
elementary OS default. Curated, macOS-influenced. |
|
Budgie WM |
X11 / Wayland |
GTK 3 |
Independent. Solus origin. |
Tools#
xdg utilities#
Vendor-neutral helpers that work across DEs. The operator scripts launches and lookups through these to stay portable.
$ xdg-open file.pdf
$ xdg-mime query default text/html
$ xdg-settings get default-web-browser
systemctl –user#
DE session services run as systemd user units on modern distros. Audit and control them per user.
$ systemctl --user list-units --state=running
$ systemctl --user status xdg-desktop-portal-gnome.service
dconf / gsettings#
GNOME’s settings backend. Useful for scripted DE configuration and for spotting unexpected key bindings.
$ gsettings list-recursively org.gnome.desktop.privacy
$ dconf dump /org/gnome/desktop/
kreadconfig6 / kwriteconfig6#
KDE’s settings CLI. Equivalent role to gsettings.
$ kreadconfig6 --file kwinrc --group Windows --key FocusPolicy
$ kwriteconfig6 --file kwinrc --group Windows --key FocusPolicy ClickToFocus
Files#
Per-DE configuration#
Path |
Purpose |
|---|---|
|
GNOME settings database (binary). |
|
KDE Plasma defaults. |
|
XFCE configuration tree. |
|
XDG-compliant per-user autostart entries ( |
|
System-wide autostart. Audit when triaging a host. |
Variables#
Session#
Variable |
Purpose |
|---|---|
|
The active DE. |
|
Session name from the display manager. |
|
Where DE apps look for |
Common Tasks#
Identify the active DE.
$ echo "$XDG_CURRENT_DESKTOP / $DESKTOP_SESSION / $XDG_SESSION_TYPE"
List autostart entries (per-user plus system).
$ ls -1 ~/.config/autostart/ /etc/xdg/autostart/
See which apps are claiming a MIME handler.
$ xdg-mime query default text/html
$ grep -l 'MimeType=.*text/html' /usr/share/applications/*.desktop
References#
man 1 xdg-open,man 1 xdg-mime,man 1 gsettings,man 1 dconf,man 1 systemctl.Tasks for session triage.