NixOS system configurations + dotfiles via home-manager
1input {
2 keyboard {
3 xkb {
4 layout "us"
5 model ""
6 rules ""
7 variant ""
8 options "ctrl:nocaps"
9 }
10 repeat-delay 300
11 repeat-rate 50
12 track-layout "global"
13 }
14 touchpad {
15 tap
16 natural-scroll
17 }
18 workspace-auto-back-and-forth
19}
20screenshot-path "~/pictures/screenshots/screenshot_%Y-%m-%d_%H:%M:%S.png"
21prefer-no-csd
22layout {
23 gaps 14
24 struts {
25 left 20
26 right 20
27 }
28 shadow {
29 on
30 draw-behind-window true
31 softness 30
32 spread 5
33 offset x=0 y=5
34 color "#0007"
35 }
36 focus-ring { off; }
37 border { off; }
38}
39window-rule {
40 geometry-corner-radius 12
41 clip-to-geometry true
42}
43binds {
44 Mod+Shift+Slash { show-hotkey-overlay; }
45 Mod+T hotkey-overlay-title="Open a Terminal" { spawn "ghostty"; }
46 Mod+D hotkey-overlay-title="Run an Application" { spawn "fuzzel"; }
47 Mod+E hotkey-overlay-title="Pick an Emoji" { spawn "rofimoji"; }
48 Mod+Q hotkey-overlay-title="Run a qutebrowser Profile" { spawn-sh "qbpm choose"; }
49 Mod+X hotkey-overlay-title="Play Copied Link (mpv)" { spawn-sh "mpv $(wl-paste)"; }
50 Mod+Shift+X hotkey-overlay-title="Play Copied Link (umpv)" { spawn-sh "umpv $(wl-paste)"; }
51 Mod+Alt+L hotkey-overlay-title="Lock the Screen" { spawn "swaylock"; }
52
53 XF86MonBrightnessDown { spawn-sh "light -U 5"; }
54 XF86MonBrightnessUp { spawn-sh "light -A 5"; }
55 XF86AudioRaiseVolume { spawn-sh "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 0.05+"; }
56 XF86AudioLowerVolume { spawn-sh "wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 0.05-"; }
57 Shift+XF86AudioRaiseVolume { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"; }
58 Shift+XF86AudioLowerVolume { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; }
59 XF86AudioMute { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
60 XF86AudioMicMute { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
61 XF86AudioPrev { spawn-sh "playerctl previous"; }
62 XF86AudioNext { spawn-sh "playerctl next"; }
63 XF86AudioMedia { spawn-sh "playerctl play-pause"; }
64 XF86AudioPlay { spawn-sh "playerctl play-pause"; }
65
66 Mod+O repeat=false { toggle-overview; }
67
68 Mod+Shift+Q repeat=false { close-window; }
69
70 Mod+Left { focus-column-left; }
71 Mod+Down { focus-window-down; }
72 Mod+Up { focus-window-up; }
73 Mod+Right { focus-column-right; }
74 Mod+H { focus-column-left; }
75 Mod+J { focus-window-down; }
76 Mod+K { focus-window-up; }
77 Mod+L { focus-column-right; }
78
79 Mod+Shift+Left { move-column-left; }
80 Mod+Shift+Down { move-window-down; }
81 Mod+Shift+Up { move-window-up; }
82 Mod+Shift+Right { move-column-right; }
83 Mod+Shift+H { move-column-left; }
84 Mod+Shift+J { move-window-down; }
85 Mod+Shift+K { move-window-up; }
86 Mod+Shift+L { move-column-right; }
87
88 Mod+Home { focus-column-first; }
89 Mod+End { focus-column-last; }
90 Mod+Shift+Home { move-column-to-first; }
91 Mod+Shift+End { move-column-to-last; }
92
93 Mod+Ctrl+Left { focus-monitor-left; }
94 Mod+Ctrl+Down { focus-monitor-down; }
95 Mod+Ctrl+Up { focus-monitor-up; }
96 Mod+Ctrl+Right { focus-monitor-right; }
97 Mod+Ctrl+H { focus-monitor-left; }
98 Mod+Ctrl+J { focus-monitor-down; }
99 Mod+Ctrl+K { focus-monitor-up; }
100 Mod+Ctrl+L { focus-monitor-right; }
101
102 Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
103 Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
104 Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
105 Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
106 Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
107 Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
108 Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
109 Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
110
111 Mod+Page_Down { focus-workspace-down; }
112 Mod+Page_Up { focus-workspace-up; }
113 Mod+U { focus-workspace-down; }
114 Mod+I { focus-workspace-up; }
115 Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
116 Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
117 Mod+Ctrl+U { move-column-to-workspace-down; }
118 Mod+Ctrl+I { move-column-to-workspace-up; }
119
120 Mod+Shift+Page_Down { move-workspace-down; }
121 Mod+Shift+Page_Up { move-workspace-up; }
122 Mod+Shift+U { move-workspace-down; }
123 Mod+Shift+I { move-workspace-up; }
124
125 Mod+Shift+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
126 Mod+Shift+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
127 Mod+Ctrl+Shift+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
128 Mod+Ctrl+Shift+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
129
130 Mod+WheelScrollRight { focus-column-right; }
131 Mod+WheelScrollLeft { focus-column-left; }
132 Mod+Ctrl+WheelScrollRight { move-column-right; }
133 Mod+Ctrl+WheelScrollLeft { move-column-left; }
134
135 Mod+WheelScrollDown { focus-column-right; }
136 Mod+WheelScrollUp { focus-column-left; }
137 Mod+Ctrl+WheelScrollDown { move-column-right; }
138 Mod+Ctrl+WheelScrollUp { move-column-left; }
139
140 Mod+1 { focus-workspace 1; }
141 Mod+2 { focus-workspace 2; }
142 Mod+3 { focus-workspace 3; }
143 Mod+4 { focus-workspace 4; }
144 Mod+5 { focus-workspace 5; }
145 Mod+6 { focus-workspace 6; }
146 Mod+7 { focus-workspace 7; }
147 Mod+8 { focus-workspace 8; }
148 Mod+9 { focus-workspace 9; }
149 Mod+Ctrl+1 { move-column-to-workspace 1; }
150 Mod+Ctrl+2 { move-column-to-workspace 2; }
151 Mod+Ctrl+3 { move-column-to-workspace 3; }
152 Mod+Ctrl+4 { move-column-to-workspace 4; }
153 Mod+Ctrl+5 { move-column-to-workspace 5; }
154 Mod+Ctrl+6 { move-column-to-workspace 6; }
155 Mod+Ctrl+7 { move-column-to-workspace 7; }
156 Mod+Ctrl+8 { move-column-to-workspace 8; }
157 Mod+Ctrl+9 { move-column-to-workspace 9; }
158
159 Mod+Tab { focus-workspace-previous; }
160 Mod+Z { focus-workspace-previous; }
161 Mod+Slash { focus-workspace-previous; }
162
163 Mod+BracketLeft { consume-or-expel-window-left; }
164 Mod+BracketRight { consume-or-expel-window-right; }
165 Mod+Comma { consume-window-into-column; }
166 Mod+Period { expel-window-from-column; }
167
168 Mod+R { switch-preset-column-width; }
169 Mod+Shift+R { switch-preset-window-height; }
170 Mod+Ctrl+R { reset-window-height; }
171 Mod+F { maximize-column; }
172 Mod+Shift+F { fullscreen-window; }
173 Mod+Ctrl+Shift+F { toggle-windowed-fullscreen; }
174 Mod+Ctrl+F { expand-column-to-available-width; }
175
176 Mod+C { center-column; }
177 Mod+Ctrl+C { center-visible-columns; }
178 Mod+Minus { set-column-width "-10%"; }
179 Mod+Equal { set-column-width "+10%"; }
180
181 Mod+Shift+Minus { set-window-height "-10%"; }
182 Mod+Shift+Equal { set-window-height "+10%"; }
183
184 Mod+V { toggle-window-floating; }
185 Mod+Shift+V { switch-focus-between-floating-and-tiling; }
186
187 Mod+W { toggle-column-tabbed-display; }
188
189 Print { screenshot; }
190 Ctrl+Print { screenshot-screen; }
191 Alt+Print { screenshot-window; }
192
193 Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
194
195 Mod+Shift+E { quit; }
196 Ctrl+Alt+Delete { quit; }
197 Mod+Shift+P { power-off-monitors; }
198}