The transition from X11 to Wayland has necessitated new paradigms for system interaction. Standalone compositors like Niri offer robust window management but lack the integrated "shell" experience of GNOME or KDE. Nirav fills this niche by providing a lightweight, aesthetically consistent overlay built on the QuickShell framework.
The primary design philosophy of Nirav is "functional minimalism." It adheres to the specific Gruvbox Material Dark color scheme to reduce eye strain while providing high-density information through smooth animations and vector iconography.
Nirav is architected as a client-side application communicating with the compositor and system hardware layers.
By leveraging QuickShell (based on Qt6 and QML), Nirav achieves hardware-accelerated rendering. This ensures that UI elements, such as the Cava audio visualizer, do not consume CPU cycles reserved for application logic.
The shell is composed of independent "Widgets" that handle specific domains:
/proc/stat and `lm_sensors` to display CPU
load, RAM usage, and core temperatures with color-coded threshold alerts.Nirav implements the MPRIS protocol to display current track information (Artist - Title) and provide playback controls. Uniquely, it integrates a Cava visualizer directly into the bar, creating a dynamic audio spectrum that reacts to system audio output.
The Battery widget features hover-expand details and a dedicated "Right-Click" action to spawn `battop` in a floating window, offering granular insight into discharge rates and battery health.
The entire UI is strictly typed to the Gruvbox Material Dark palette. Text rendering utilizes the JetBrainsMono Nerd Font for readability and code-ligature support.
Installation requires `quickshell` and `niri`. The codebase includes comprehensive documentation on "Widgets & Theming", allowing users to fork and customize the QML definitions.
git clone https://github.com/kkYrusobad/Nirav
Future iterations will focus on a plugin system for third-party widgets and tighter integration with Niri's IPC for window movement control directly from the shell.
The full source code, documentation, and release history are hosted on GitHub.