$ show noctalia-dev/noctalia
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 LLM identified 4 files worth highlighting for reuse:
Provides SecureBuffer (move-only RAII wrapper for encrypted memory using libsodium XChaCha20-Poly1305), SecureKey (key derivation), and EncryptionContext (authenticated encryption with nonce and associated data). The design ensures automatic memory wiping on destruction and prevents inadvertent copying. This component is fully self-contained (only depends on libsodium) and could be extracted into any C++ project requiring secure in-memory storage of secrets.
Implements DeferredCall, a mechanism to marshal callbacks onto the main thread from any context (worker threads, signal handlers) via an eventfd pipe and a queue. It uses shared_ptr alive guards to safely cancel callbacks after object destruction. This pattern is reusable in any single-threaded event-loop application (e.g., game engines, UI frameworks) that needs thread-to-main dispatch.
A header-only fuzzy string matching implementation derived from fzy, providing a scoring function for ranking strings based on substring matching with gaps. It is completely independent (no internal dependencies, C++17) and can be dropped into any project requiring fuzzy search (launcher, code completion, file finder).
A thin C++ wrapper around Linux inotify, exposing a PollSource interface for integration into event loops. Supports recursive watching via directory trees, event masking, and automatic cleanup of file descriptors. Standalone and reusable for any Linux application needing filesystem change monitoring.