Session services
Audio, networking, Bluetooth, power, printing and the other services a desktop session runs on.
| Area | Choice | Alternatives considered | Why |
|---|---|---|---|
| Audio | PipeWire + WirePlumber (+ rtkit) | PulseAudio, JACK | Low latency, Bluetooth codecs, screen-sharing video, compatible with PulseAudio and JACK apps. rtkit gives it realtime priority. |
| Network | NetworkManager (+ connection editor, OpenVPN, OpenConnect, WireGuard) | iwd, ConnMan, systemd-networkd | Handles Wi-Fi, Ethernet, VPNs, hotspots and captive portals, and has a mature API (libnm) our shell uses. iwd as a Wi-Fi backend is faster to connect but less compatible with enterprise Wi-Fi, so it stays optional. |
| Bluetooth | BlueZ (D-Bus) + Blueman for advanced settings | โ | BlueZ is the Linux stack. Our Control Center and Settings talk to it directly. |
| Power | UPower + power-profiles-daemon + thermald | TLP, auto-cpufreq | power-profiles-daemon gives the three modes users understand, is what GNOME and KDE use, and doesn't conflict with firmware. TLP needs tuning and conflicts with it. |
| Idle / lock | swayidle + wlopm + gtklock | swaylock, hyprlock | gtklock shows a clock, date and styled password field (our CSS), unlike swaylock. hyprlock isn't in Debian. |
| Night light | wlsunset | gammastep, redshift | Small and Wayland-native. The shell runs it with sunrise and sunset for your time zone's coordinates, manual hours, or the same temperature day and night ("all the time"). |
| Screenshots / recording | grim, slurp, wl-clipboard, wf-recorder | GNOME Screenshot, OBS | Standard wlroots tools, fast and scriptable. OBS is one click away in App Center. |
| Screenshot annotation | swappy | Satty, Flameshot, Ksnip | A small GTK 3 editor made for grim: arrows, text, highlighter, blur. Satty isn't in Debian. Flameshot and Ksnip are Qt apps with their own capture code that works poorly on wlroots. |
| Text from pictures (OCR) | Tesseract 5 + language data for all 18 boot-menu scripts | EasyOCR, PaddleOCR, online OCR | Offline, fast, in Debian. The neural-network alternatives need hundreds of MB of Python and models. English plus your language is used for recognition. |
| Phone integration | KDE Connect | GSConnect, Valent | Works with Android and iPhone, is in Debian, and shows up in our tray. GSConnect needs GNOME Shell. Valent (GTK) isn't in Debian yet. Its ports (1714โ1764) stay closed until you switch it on in Settings โ Sharing (a ufw profile plus one aurora-admin action). |
| Fingerprint | fprintd + our PAM profile | Debian's default (off), Howdy (face) | A pam-auth-update profile (/usr/share/pam-configs/aurora-fingerprint) puts pam_fprintd in the stack for sudo, pkexec and polkit prompts, but skips it for greetd, gtklock, login and ssh. The login password is still needed at boot (it also unlocks the keyring, as macOS does after a restart), and the lock screen can't get stuck waiting for a finger. |
| Media keys / controls | playerctl (MPRIS) | โ | Controls any player: browsers, Spotify, Celluloid, Rhythmbox. |
| Portals | xdg-desktop-portal-gtk + -wlr | -gnome, -kde | GTK file choosers and settings; wlr for screenshots and screen sharing in browsers and video calls. |
| Admin prompts | mate-polkit agent | polkit-gnome, lxpolkit, our own | A maintained, small GTK agent that works on Wayland. |
| Keyring | gnome-keyring (unlocked by PAM at login) + Seahorse | KeePassXC's secret service | Every app that saves passwords (Wi-Fi, browsers, Git credential helpers) supports it. |
| Removable media | udisks2 + GVfs, automounted by the shell | udiskie | Drives mount on insert, with a notification to open or eject. |
| Touchpad gestures | libinput events read by the shell | libinput-gestures, fusuma, touchรฉgg | labwc 0.8 has no gestures. The shell reads libinput debug-events (the user is in the input group) and turns 3- and 4-finger movements into actions. The alternatives aren't in Debian or need extra daemons. Workspace switches press labwc's own shortcut through wtype. |
| Nearby sharing | LocalSend (pinned official .deb) | Warpinator, KDE Connect only, Snapdrop | Works with Android, iPhone, Windows, macOS and Linux with no account, over the local network. Warpinator is Linux-first. Its port (53317) opens only when you switch on "Let nearby devices find this computer". |
| Screen sharing | wayvnc (RSA-AES encryption, password) | gnome-remote-desktop (RDP), RustDesk | wayvnc is the wlroots VNC server and is in Debian. gnome-remote-desktop needs GNOME's compositor, and RustDesk relays through servers. Port 5900 opens only while sharing. |
| Battery charge limit | sysfs charge_control_end_threshold + a boot and resume service | TLP, vendor tools | The kernel's standard interface works on many brands. TLP would conflict with power-profiles-daemon. |
| System Health | Our own checks (UDisks2 SMART over D-Bus, apt, fwupd, systemd, nvidia-detect, UPower) | GNOME Disks alone, smartd e-mails | One page with every common problem and its fix, no admin password needed to look. |
| Autostart | aurora-autostart (XDG autostart) | dex | labwc doesn't run XDG autostart entries. Our small runner honors OnlyShowIn, NotShowIn, Hidden and TryExec, and is unit-tested. |