/ files / niri.kdl
niri.kdl
  1    prefer-no-csd
  2    screenshot-path "~/Pictures/Screenshots/%Y%m%d-%H%M%S.png"
  3  
  4    xwayland-satellite {
  5        path "$$bin/xwayland-satellite$$"
  6    }
  7  
  8    // Guix Home (home-shepherd-service-type)
  9    spawn-at-startup "shepherd"
 10  
 11    hotkey-overlay {
 12        skip-at-startup
 13    }
 14  
 15    window-rule {
 16        match app-id="librewolf" title="^Picture-in-Picture$"
 17        open-floating true
 18    }
 19  
 20    window-rule {
 21        match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
 22        default-floating-position x=10 y=10 relative-to="bottom-right"
 23    }
 24  
 25    window-rule {
 26        match app-id="thunar" title="^File Operation Progress$"
 27        open-floating true
 28    }
 29  
 30    // Noctalia
 31    window-rule {
 32        geometry-corner-radius 20
 33        clip-to-geometry true
 34    }
 35  
 36    debug {
 37      honor-xdg-activation-with-invalid-serial
 38    }
 39  
 40    // Set the regular wallpaper on the backdrop.
 41    layer-rule {
 42      match namespace="^noctalia-wallpaper*"
 43      place-within-backdrop true
 44    }
 45  
 46    // Optionally, disable the workspace shadows in the overview.
 47    overview {
 48      workspace-shadow {
 49        off
 50      }
 51    }
 52  
 53    layout {
 54        // Set transparent workspace background color so you see the backdrop at all times.
 55        background-color "transparent"
 56  
 57        focus-ring {
 58            off
 59        }
 60        border {
 61            off
 62        }
 63    }
 64  
 65    input {
 66        keyboard {
 67            repeat-delay 300
 68            repeat-rate 30
 69        }
 70        touchpad {
 71            tap
 72            natural-scroll
 73        }
 74        warp-mouse-to-focus
 75    }
 76  
 77    output "eDP-1" {
 78        mode "2560x1440@240.002"
 79    }
 80  
 81    output "DP-1" {
 82        focus-at-startup
 83    }
 84  
 85    binds {
 86        XF86AudioRaiseVolume  allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "increase"; }
 87        XF86AudioLowerVolume  allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "decrease"; }
 88        XF86AudioMute         allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "muteOutput"; }
 89        XF86AudioMicMute      allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "volume" "muteInput"; }
 90        XF86AudioPlay         allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "play"; }
 91        XF86AudioStop         allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "pause"; }
 92        XF86AudioPrev         allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "previous"; }
 93        XF86AudioNext         allow-when-locked=true { spawn "noctalia-shell" "ipc" "call" "media" "next"; }
 94        XF86MonBrightnessUp   allow-when-locked=true { spawn "brightnessctl" "-d" "intel_backlight" "set" "+5%"; }
 95        XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "-d" "intel_backlight" "set" "5%-"; }
 96  
 97        Mod+O           { spawn "noctalia-shell" "ipc" "call" "controlCenter" "toggle"; }
 98        Mod+A           { spawn "noctalia-shell" "ipc" "call" "launcher" "toggle"; }
 99        Mod+D           { spawn "noctalia-shell" "ipc" "call" "plugin:clipper" "togglePanel"; }
100        Mod+S           { spawn "noctalia-shell" "ipc" "call" "settings" "toggle"; }
101        Ctrl+Alt+Delete { spawn "noctalia-shell" "ipc" "call" "sessionMenu" "toggle"; }
102        Mod+Shift+E     { spawn "herd" "restart" "noctalia-shell"; }
103  
104        Mod+E       { spawn "emacsclient" "--create-frame" "--no-wait"; }
105        Mod+Return  { spawn "$$bin/wezterm$$"; }
106  
107        Mod+Left                       { focus-column-left; }
108        Mod+Down                       { focus-window-down; }
109        Mod+Up                         { focus-window-up; }
110        Mod+Right                      { focus-column-right; }
111  
112        Mod+Shift+Left                 { move-column-left; }
113        Mod+Shift+Down                 { move-window-down; }
114        Mod+Shift+Up                   { move-window-up; }
115        Mod+Shift+Right                { move-column-right; }
116  
117        Mod+WheelScrollDown            { focus-column-right; }
118        Mod+WheelScrollUp              { focus-column-left; }
119  
120        Mod+Shift+WheelScrollDown      { move-column-right; }
121        Mod+Shift+WheelScrollUp        { move-column-left; }
122  
123        Mod+Ctrl+Left                  { focus-monitor-left; }
124        Mod+Ctrl+Right                 { focus-monitor-right; }
125  
126        Mod+Ctrl+Shift+Left            { move-column-to-monitor-left; }
127        Mod+Ctrl+Shift+Right           { move-column-to-monitor-right; }
128  
129        Mod+Ctrl+WheelScrollDown       { focus-monitor-right; }
130        Mod+Ctrl+WheelScrollUp         { focus-monitor-left; }
131  
132        Mod+Ctrl+Shift+WheelScrollDown { move-column-to-monitor-right; }
133        Mod+Ctrl+Shift+WheelScrollUp   { move-column-to-monitor-left; }
134  
135        Mod+Comma                      { consume-or-expel-window-left; }
136        Mod+Period                     { consume-or-expel-window-right; }
137        Mod+F                          { maximize-column; }
138        Mod+Shift+F                    { fullscreen-window; }
139        Mod+C                          { center-column; }
140        Mod+V                          { toggle-window-floating; }
141        Mod+Shift+V                    { switch-focus-between-floating-and-tiling; }
142  
143        Mod+Q                    { close-window; }
144  
145        Mod+Tab repeat=false           { toggle-overview; }
146  
147        Print                          { screenshot; }
148        Ctrl+Print                     { screenshot-screen; }
149        Alt+Print                      { screenshot-window; }
150  
151        Mod+1 { focus-workspace 1; }
152        Mod+2 { focus-workspace 2; }
153        Mod+3 { focus-workspace 3; }
154        Mod+4 { focus-workspace 4; }
155        Mod+5 { focus-workspace 5; }
156        Mod+6 { focus-workspace 6; }
157        Mod+7 { focus-workspace 7; }
158        Mod+8 { focus-workspace 8; }
159        Mod+9 { focus-workspace 9; }
160        Mod+Ctrl+1 { move-column-to-workspace 1; }
161        Mod+Ctrl+2 { move-column-to-workspace 2; }
162        Mod+Ctrl+3 { move-column-to-workspace 3; }
163        Mod+Ctrl+4 { move-column-to-workspace 4; }
164        Mod+Ctrl+5 { move-column-to-workspace 5; }
165        Mod+Ctrl+6 { move-column-to-workspace 6; }
166        Mod+Ctrl+7 { move-column-to-workspace 7; }
167        Mod+Ctrl+8 { move-column-to-workspace 8; }
168        Mod+Ctrl+9 { move-column-to-workspace 9; }
169    }