Update Noctalia keybinds and app shortcuts

Call noctalia-shell directly for several bindings (NixOS-friendly) and
route volume/brightness controls through Noctalia IPC for OSD. Replace
Thunar with Nautilus, change emergency key to Mod+Shift+Escape, fix
wl-paste startup args for cliphist, and comment out rclone mount and
polkit startup where managed by systemd user services
This commit is contained in:
Melvin Ragusa
2026-02-02 11:31:23 +01:00
parent 815383df9d
commit 926bbc3510

View File

@@ -45,35 +45,36 @@ binds {
// ---- Hotkey Overlay
MOD+SHIFT+BACKSPACE { show-hotkey-overlay; }
// ─── Noctalia ───
// MOD+SPACE hotkey-overlay-title="Open App Launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
MOD+SHIFT+L hotkey-overlay-title="Lock Screen" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
MOD+S hotkey-overlay-title="Open Control Center" { spawn-sh "qs -c noctalia-shell ipc call controlCenter toggle";}
MOD+COMMA hotkey-overlay-title="Open Settings" { spawn-sh "qs -c noctalia-shell ipc call settings toggle"; }
MOD+SHIFT+DELETE hotkey-overlay-title="Session Menu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
MOD+N hotkey-overlay-title="Notification History" { spawn-sh "qs -c noctalia-shell ipc call notifications toggleHistory"; }
MOD+M hotkey-overlay-title="Wallpaper Selector" { spawn-sh "qs -c noctalia-shell ipc call wallpaper toggle"; }
// ─── Noctalia Shell ───
// Note: On NixOS, use "noctalia-shell" directly instead of "qs -c noctalia-shell"
Mod+Shift+L hotkey-overlay-title="Lock Screen" { spawn "noctalia-shell" "ipc" "call" "lockScreen" "lock"; }
Mod+S hotkey-overlay-title="Control Center" { spawn "noctalia-shell" "ipc" "call" "controlCenter" "toggle"; }
Mod+Comma hotkey-overlay-title="Settings" { spawn "noctalia-shell" "ipc" "call" "settings" "toggle"; }
Mod+Escape hotkey-overlay-title="Session Menu" { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
Mod+N hotkey-overlay-title="Notification History" { spawn "noctalia-shell" "ipc" "call" "notifications" "toggleHistory"; }
Mod+M hotkey-overlay-title="Wallpaper Selector" { spawn "noctalia-shell" "ipc" "call" "wallpaper" "toggle"; }
// ─── Applications ───
MOD+T hotkey-overlay-title="Open Terminal: ghostty" { spawn-sh "ghostty"; }
MOD+B hotkey-overlay-title="Open Browser: Zen" { spawn-sh "zen-browser"; }
MOD+E hotkey-overlay-title="File Manager: Thunar" { spawn-sh "thunar"; }
MOD+SPACE repeat=false hotkey-overlay-title="Open App Launcher" { spawn "vicinae" "toggle"; }
MOD+G hotkey-overlay-title="Open Google Gemini" { spawn-sh "/usr/bin/chromium --profile-directory=Default --app-id=gdfaincndogidkdcdkhapmbffkckdkhn
"; }
Mod+T hotkey-overlay-title="Open Terminal: ghostty" { spawn "ghostty"; }
Mod+B hotkey-overlay-title="Open Browser: Zen" { spawn "zen-browser"; }
Mod+E hotkey-overlay-title="File Manager: Nautilus" { spawn "nautilus"; }
Mod+Space repeat=false hotkey-overlay-title="Open App Launcher" { spawn "vicinae" "toggle"; }
// Mod+G hotkey-overlay-title="Open Google Gemini" { spawn "chromium" "--app=https://gemini.google.com"; }
// ─── Audio Controls ───
// Example volume keys mappings for PipeWire & WirePlumber.
// The allow-when-locked=true property makes them work even when the session is locked.
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
// ─── Audio Controls (via Noctalia for OSD) ───
XF86AudioRaiseVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "increase"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "decrease"; }
XF86AudioMute allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
XF86AudioPause allow-when-locked=true { spawn-sh "playerctl play-pause"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
// ─── Brightness Controls (via Noctalia for OSD) ───
XF86MonBrightnessUp { spawn "noctalia-shell" "ipc" "call" "brightness" "increase"; }
XF86MonBrightnessDown { spawn "noctalia-shell" "ipc" "call" "brightness" "decrease"; }
// ─── Window Movement and Focus ───
MOD+Q { close-window; }
@@ -172,7 +173,7 @@ binds {
// ─── Emergency Escape Key ───
// Use this when a fullscreen app blocks your keybinds.
// It disables any active keyboard shortcut inhibitor, restoring control.
MOD+ESCAPE allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// ─── Exit / Power ───
CTRL+ALT+DELETE { quit; } // Also quits Niri
@@ -183,13 +184,17 @@ binds {
// ────────────── Startup Applications ──────────────
// https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup
spawn-sh-at-startup "/usr/lib/polkit-kde-authentication-agent-1 &" // Polkit
// Note: On NixOS, polkit agent is started via systemd user service (see desktop.nix)
// spawn-sh-at-startup "polkit-gnome-authentication-agent-1 &"
spawn-sh-at-startup "sleep 2 && vicinae server"
spawn-at-startup "xwayland-satellite"
// spawn-at-startup "wl-paste" "--type text" "--watch" "cliphist" "store"
// spawn-at-startup "wl-paste" "--type image" "--watch" "cliphist" "store"
// Clipboard history (cliphist)
spawn-at-startup "wl-paste" "--type" "text" "--watch" "cliphist" "store"
spawn-at-startup "wl-paste" "--type" "image" "--watch" "cliphist" "store"
spawn-sh-at-startup "steam -nochatui -nofriendsui -silent"
spawn-sh-at-startup "rclone mount google-drive: /home/pinj/google-drive/"
// spawn-sh-at-startup "rclone mount google-drive: /home/pinj/google-drive/"
prefer-no-csd // Disable program decorations
screenshot-path null // Disable screenshot saving
@@ -277,8 +282,8 @@ binds {
}
window-rule {
match app-id=r#"thunar$"#
// Always float Thunar windows
match app-id=r#"org.gnome.Nautilus$"#
// Always float Nautilus windows
open-floating true
// Set Window Proportions
max-height 1500