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

gnome

Mutter

Wayland

GTK 4

Minimal, opinionated, portal-driven security.

kde

KWin

Wayland (X11 still supported)

Qt 6

Highly configurable; powerful keyboard daemon (kglobalaccel).

xfce

xfwm4

X11

GTK 3

Lightweight; stable; mature.

mate

Marco

X11

GTK 3

GNOME 2 fork. Familiar to long-time Linux users.

cinnamon

Muffin (fork of Mutter)

X11

GTK 3

Linux Mint default. Traditional layout.

lxqt

Openbox

X11

Qt 5

Light Qt-based DE.

pantheon

Gala

X11

GTK 3

elementary OS default. Curated, macOS-influenced.

budgie

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

~/.config/dconf/user

GNOME settings database (binary).

~/.config/kdedefaults/

KDE Plasma defaults.

~/.config/xfce4/

XFCE configuration tree.

~/.config/autostart/

XDG-compliant per-user autostart entries (.desktop files).

/etc/xdg/autostart/

System-wide autostart. Audit when triaging a host.

Variables#

Session#

Variable

Purpose

XDG_CURRENT_DESKTOP

The active DE. GNOME, KDE, XFCE, MATE.

DESKTOP_SESSION

Session name from the display manager.

XDG_DATA_DIRS

Where DE apps look for .desktop, MIME, and icon data.

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#