summaryrefslogtreecommitdiff
path: root/.config/niri/cfg/keybinds.kdl
blob: 21563cde20fc2f4e2620d83cf7a952ac20120c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
binds {

    // ────────────── Keybindings ──────────────
    // https://github.com/YaLTeR/niri/wiki/Configuration:-Key-Bindings

    // ─── noctalia-shell keybinds ───
    // https://docs.noctalia.dev/getting-started/keybinds/

    Mod+Shift+ESCAPE                     { show-hotkey-overlay; }

    // ─── Applications ───
    Mod+Return                          hotkey-overlay-title="Open Terminal: Foot" { spawn "foot"; }
    Mod+CTRL+Return                     hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
    Mod+B                               hotkey-overlay-title="Open Browser: Helium" { spawn "helium-browser"; }
    Mod+ALT+L                           hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
    Mod+Shift+Q                         hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }

    // Please choose your own file manager.
    Mod+E                               hotkey-overlay-title="File Manager: Nautilus" { spawn "nautilus"; }

    // ─── Media Controls ───
    XF86AudioRaiseVolume                allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; }
    XF86AudioLowerVolume                allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; }
    XF86AudioMute                       allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; }
    XF86AudioMicMute                    allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; }
    XF86AudioNext                       allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; }
    XF86AudioPrev                       allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; }
    XF86AudioPlay                       allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
    XF86AudioPause                      allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }

    // ─── Brightness Controls ───
    XF86MonBrightnessUp                 allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; }
    XF86MonBrightnessDown               allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }

    // ─── Window Movement and Focus ───
    Mod+Q                               { close-window; }

    Mod+Left                            { focus-column-left; }
    Mod+H                               { focus-column-left; }
    Mod+Right                           { focus-column-right; }
    Mod+L                               { focus-column-right; }
    Mod+Up                              { focus-window-up; }
    Mod+K                               { focus-window-up; }
    Mod+Down                            { focus-window-down; }
    Mod+J                               { focus-window-down; }

    Mod+CTRL+Left                       { move-column-left; }
    Mod+CTRL+H                          { move-column-left; }
    Mod+CTRL+Right                      { move-column-right; }
    Mod+CTRL+L                          { move-column-right; }
    Mod+CTRL+UP                         { move-window-up; }
    Mod+CTRL+K                          { move-window-up; }
    Mod+CTRL+Down                       { move-window-down; }
    Mod+CTRL+J                          { move-window-down; }

    Mod+Home                            { focus-column-first; }
    Mod+End                             { focus-column-last; }
    Mod+CTRL+Home                       { move-column-to-first; }
    Mod+CTRL+End                        { move-column-to-last; }

    Mod+Shift+Left                      { focus-monitor-left; }
    Mod+Shift+Right                     { focus-monitor-right; }
    Mod+Shift+UP                        { focus-monitor-up; }
    Mod+Shift+Down                      { focus-monitor-down; }

    Mod+Shift+CTRL+Left                 { move-column-to-monitor-left; }
    Mod+Shift+CTRL+Right                { move-column-to-monitor-right; }
    Mod+Shift+CTRL+UP                   { move-column-to-monitor-up; }
    Mod+Shift+CTRL+Down                 { move-column-to-monitor-down; }

    // ─── Workspace Switching ───
    Mod+WheelScrollDown                 cooldown-ms=150 { focus-workspace-down; }
    Mod+WheelScrollUp                   cooldown-ms=150 { focus-workspace-up; }
    Mod+CTRL+WheelScrollDown            cooldown-ms=150 { move-column-to-workspace-down; }
    Mod+CTRL+WheelScrollUp              cooldown-ms=150 { move-column-to-workspace-up; }

    Mod+WheelScrollRight                { focus-column-right; }
    Mod+WheelScrollLeft                 { focus-column-left; }
    Mod+CTRL+WheelScrollRight           { move-column-right; }
    Mod+CTRL+WheelScrollLeft            { move-column-left; }

    Mod+Shift+WheelScrollDown           { focus-column-right; }
    Mod+Shift+WheelScrollUp             { focus-column-left; }
    Mod+CTRL+Shift+WheelScrollDown      { move-column-right; }
    Mod+CTRL+Shift+WheelScrollUp        { move-column-left; }

    Mod+1                               { focus-workspace 1; }
    Mod+2                               { focus-workspace 2; }
    Mod+3                               { focus-workspace 3; }
    Mod+4                               { focus-workspace 4; }
    Mod+5                               { focus-workspace 5; }
    Mod+6                               { focus-workspace 6; }
    Mod+7                               { focus-workspace 7; }
    Mod+8                               { focus-workspace 8; }
    Mod+9                               { focus-workspace 9; }

    Mod+CTRL+1                          { move-column-to-workspace 1; }
    Mod+CTRL+2                          { move-column-to-workspace 2; }
    Mod+CTRL+3                          { move-column-to-workspace 3; }
    Mod+CTRL+4                          { move-column-to-workspace 4; }
    Mod+CTRL+5                          { move-column-to-workspace 5; }
    Mod+CTRL+6                          { move-column-to-workspace 6; }
    Mod+CTRL+7                          { move-column-to-workspace 7; }
    Mod+CTRL+8                          { move-column-to-workspace 8; }
    Mod+CTRL+9                          { move-column-to-workspace 9; }

    Mod+TAB                             { focus-workspace-previous; }

    // ─── Layout Controls ───
    Mod+CTRL+F                          { expand-column-to-available-width; }
    Mod+C                               { center-column; }
    Mod+CTRL+C                          { center-visible-columns; }
    Mod+Minus                           { set-column-width "-10%"; }
    Mod+Equal                           { set-column-width "+10%"; }
    Mod+Shift+Minus                     { set-window-height "-10%"; }
    Mod+Shift+Equal                     { set-window-height "+10%"; }

    // ─── Modes ───
    Mod+T                               { toggle-window-floating; }
    Mod+F                               { fullscreen-window; }
    Mod+W                               { toggle-column-tabbed-display; }

    // ─── Screenshots ───
    CTRL+Shift+1                        { screenshot; }
    CTRL+Shift+2                        { screenshot-screen; }
    CTRL+Shift+3                        { screenshot-window; }

    // ─── 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; }

    // ─── Exit / Power ───
    CTRL+ALT+Delete                     { quit; } // Also quits Niri
    Mod+Shift+P                         { power-off-monitors; } // Turn off screens (useful for OLED or privacy)
    Mod+O                               repeat=false { toggle-overview; }
}