Noctalia is a Linux desktop shell for Wayland compositors, providing a fully integrated user environment including a bar, dock, notification center, lock screen, wallpaper management, launcher/dmenu, control center, on-screen displays, and a plugin system based on Luau scripting. The application is written in modern C++ (C++20/23) with its own retained-mode scene graph UI rendered via OpenGL ES, and communicates with the system through Wayland protocols, D-Bus, PipeWire, and Unix sockets. It supports multiple Wayland compositors (Hyprland, Sway, Niri, Mango, Labwc, dwl, KDE, Umbriel) via compositor-specific backends, and features a sophisticated theme engine with Material 3 palette generation, template application to third-party tools, and a CLI/IPC interface for runtime control. The codebase exhibits strong engineering practices: clean abstractions (poll sources, scene nodes, config schema engine), extensive test coverage, and a well-organized modular structure despite its monolithic architecture.
The Delta Shell is a desktop shell for Linux, designed to work with Hyprland and Niri window managers. It provides a customizable taskbar (bar) with modules for system monitoring (CPU, RAM, battery, network), weather, clipboard, and more. The shell includes pop-up windows for an application launcher, calendar, weather forecast, volume control, and other utilities. Built using the AGS (Aylur's GTK Shell) framework, it leverages GObject and GTK for a modern, responsive user interface. The architecture is modular, separating concerns into services (for system data), modules (for bar items and pop-up content), widgets (reusable UI components), and windows (for pop-ups). Key features include a dynamic application launcher, clipboard history management, real-time system monitoring, and weather integration. The shell is highly configurable through JSON files, allowing users to adjust the bar layout, theme, and module behavior. While the shell is tightly coupled to the AGS framework, it contains several reusable components, such as a comprehensive keyboard layout mapping and a flexible timer class. The codebase demonstrates good engineering practices with TypeScript, modular organization, and attention to detail in the UI theming. However, the absence of automated tests is noted as an area for improvement.
Astal is a collection of GObject-based libraries for building Wayland desktop shells and widgets on Linux. It provides reactive primitives (Variable, Binding) for declarative state management, along with wrappers for system services like NetworkManager, UPower, Bluetooth, MPRIS, audio (WirePlumber), system tray, and compositor-specific protocols (Hyprland, River, ext-workspace). The framework supports multiple frontend languages (GJS/TypeScript, Lua, Python) and both GTK3 and GTK4 via separate library targets. Examples demonstrate complete status bars and widget systems. The architecture is modular: core reactive abstractions live in `lang/gjs` and `lib/astal/io`, while domain-specific libraries under `lib/` expose GObject signals and properties for hardware and desktop services. Build system is Meson with Vala/C sources, GObject Introspection for bindings, and Nix flake for reproducible packaging. The documentation site uses VitePress. The project is actively maintained but in early development (v0.1.0 WIP). It shows strong engineering practice with well-structured reactive patterns and clean GObject usage, though there is duplication across language bindings and some deprecated APIs remain (e.g., AstalIO.Variable). The codebase is feature-rich and immediately usable for building custom Linux desktop environments.