Niri Compositor & UWSM¶
The session is managed by the Universal Wayland Session Manager (UWSM). Login is handled via greetd and tuigreet, which launches the session. Niri is configured as the sole graphical session and is enabled via programs.niri.enable directly in nixos/configuration.nix.
Note
The configuration file is a live-edit out-of-store symlink pointing to dots/niri/config.kdl at ~/.config/niri. Home Manager does not write files here.
X11 Support¶
Legacy X11 applications are supported via xwayland-satellite running on display :0. This ensures both Flatpak Qt5 apps (using the xcb plugin) and xcb-only AppImages run seamlessly.
Keybinds¶
System & Launchers¶
App launchers are dynamically resolved via ~/.config/niri/scripts/launch_first_available.sh.
| Action | Keybind |
|---|---|
| File Manager | Mod + E |
| Browser | Mod + W |
| Code Editor | Mod + C |
| Text Editor | Mod + X |
| Volume Mixer | Ctrl + Mod + V |
| Task Manager | Ctrl + Shift + Escape |
Color picker (hyprpicker) |
Mod + Shift + C |
Session menu (wlogout) |
Ctrl + Alt + Delete |
Hardware & Session Controls¶
Media and brightness keys are routed via noctalia msg to integrate with the Noctalia shell.
| Action | Keybind |
|---|---|
| Toggle touchpad | F10 |
| Media / Brightness | Hardware media keys |
| Lock session | Mod + L |
Tip
While Mod + L triggers loginctl lock-session, the visual lock screen itself is provided by Noctalia.
Workspace Management¶
| Action | Keybind |
|---|---|
| Move column to adjacent workspace | Mod + Shift + Page_Up / Page_Down |
| Move column to adjacent workspace | Ctrl + Mod + Shift + Left / Right |
Quake Terminal¶
A fast drop-down terminal is provided using kitten quick-access-terminal and controlled by dots/niri/scripts/quake.sh.
| Action | Keybind |
|---|---|
| Toggle visibility | Mod + Return |
| Position terminal | Mod + Shift + Return |
| Adjust height | Mod + Alt + Return |
| Adjust aspect ratio | Mod + Ctrl + Return |
Warning
The terminal uses an on-demand focus policy in quick-access-terminal.conf so Niri keybinds can continue functioning while the terminal panel is active.