Under the hood
Every technical choice, explained.
What Aurora is built from, what else we considered, and why: 18 chapters, 145 decisions.
linux-image-amd64)PlatformInit and system management: systemdPlatformPackage formats: .deb + Flatpak (Flathub enabled)PlatformFirmware and driversPlatformBoot loader: GRUB 2 (+ shim for Secure Boot on installed systems)Boot and live systemLive system: live-boot + SquashFS (zstd)Boot and live systemISO mastering: grub-mkrescue + xorrisoBoot and live systemBoot splash: Plymouth (script theme)Boot and live systemInstaller: Calamares (based on Debian's configuration)Installer and first bootFile systems: btrfs by default (ext4 and xfs available); LUKS2 encryptionInstaller and first bootSystem snapshots: Timeshift (btrfs mode) + grub-btrfsInstaller and first bootSwap: zram (systemd-zram-generator) + optional swap fileInstaller and first bootLogin: greetd + Aurora GreeterInstaller and first bootDisplay server: Wayland (Xwayland for older apps)Graphics and the compositorCompositor: Wayfire, with labwc fallbackGraphics and the compositorWindow decorationsGraphics and the compositorLanguage: Python 3 (PyGObject)Aurora's own desktopToolkit: GTK 4 + libadwaitaAurora's own desktopDesktop surfaces: gtk4-layer-shellAurora's own desktopWindow list: pywayland + wlr-foreign-toplevel-managementAurora's own desktopOne process, many surfacesAurora's own desktopNotifications: Aurora's own serverAurora's own desktopSystem tray: our own StatusNotifierItem hostAurora's own desktopSearch: Spotlight-style providers in PythonAurora's own desktopClipboard history: wl-paste --watch + a tiny storeAurora's own desktopQuick Look: GTK widgets per file typeAurora's own desktopSun position without a location service (aurora/sun.py)Aurora's own desktopDynamic wallpaper and automatic dark style (shell/daycycle.py)Aurora's own desktopOverview and hot cornersAurora's own desktopWeather in the calendar: Open-MeteoAurora's own desktopDesktop widgets (shell/widgets.py, shell/devwidgets.py)Aurora's own desktopSession sounds: synthesized, not sampledAurora's own desktopRuntime: llama.cpp's llama-server, downloaded on demandAurora AIModels: Qwen3 and Gemma 3 (GGUF, 4-bit)Aurora AISpeech: faster-whisper and Piper, in a private venvAurora AISearch by meaning: EmbeddingGemma + SQLite + numpyAurora AICloud providers, keys and subscriptionsAurora AILanguagesAurora AIWhere it appearsAurora AIThe Assistant as a layer surfaceAurora AIThis section explains every component Aurora is built from: what we use, what else we considered, and why we picked it. Ubuntu is a baseline to beat, not a template to copy. When something better than Ubuntu's default exists, is packaged in Debian and is dependable, Aurora uses it.
How we decide. For every component we ask, in this order:
- Is it dependable? It must be maintained, widely used and have a good security track record.
- Is it in Debian 13? Then it gets security updates from Debian's security team for years, and we don't maintain it ourselves.
- Is it native on Wayland?
- Is it the better experience: faster, simpler, more capable, better looking?
- Is it free software with a license we can ship?
Components that fail the first two checks only come in through Dev Hub (installed from their official source on request) or, rarely, pinned with a checksum at build time.
Platform
Debian 13, the long-term kernel, systemd, apt with Flatpak, and the firmware that makes hardware just work.
Boot and live system
GRUB, the live system on SquashFS, how the ISO is mastered, and the animated boot splash.
Installer and first boot
Calamares, btrfs with automatic snapshots, encryption, swap, and the login screen.
Graphics and the compositor
Wayland, the labwc compositor, and window decorations that look the same everywhere.
Aurora's own desktop
The shell written in Python and GTK 4: top bar, dock, Spotlight, notifications, Quick Look and more.
Aurora AI
Local models with llama.cpp, cloud providers, speech, search by meaning, and how privacy is kept.
Look and feel
Themes for every toolkit, Aurora's icons and window buttons, animations, fonts and artwork made by code.
Session services
Audio, networking, Bluetooth, power, printing and the other services a desktop session runs on.
Apps
Every preinstalled app, the alternatives we compared, and why each one won.
Security and privacy
Firewall, updates, encryption, Secure Boot, verified downloads and no telemetry.
Developer experience
What's preinstalled for developers, the terminal setup, containers and Dev Hub.
Internationalization
gettext, translations in eleven languages, fonts for every script and the language menus.
Aurora's own packages and repository
How Aurora's own .deb packages are built, signed and published.
Game Hub
Steam, Proton, Heroic, Lutris, Bottles and Waydroid: gaming set up in one click.
Build system
Docker, staged build scripts and the steps from source to a bootable ISO.
Testing
Static checks, unit and smoke tests, and real boots and installs in QEMU.
Bugs we found and how we fixed them
Real bugs met while building and using Aurora, what caused them and how they were fixed.
Website
This website: static pages, generated docs and screenshots from the real ISO.