blob: f2b854025bd7a64d141ee23b8921271d67c73d85 (
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
|
{ config, lib, pkgs, ... }:
with config.lib.niri.actions;
let
playerctl = spawn "${pkgs.playerctl}/bin/playerctl";
in
{
"Mod+O" = {
action = toggle-overview;
repeat = false;
};
"Mod+Slash".action = show-hotkey-overlay;
# Audio
XF86AudioRaiseVolume.action = playerctl "volume" "0.02+";
XF86AudioLowerVolume.action = playerctl "volume" "0.02-";
XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
XF86AudioMicMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
# Media keys
XF86AudioPlay.action = playerctl "play-pause";
XF86AudioPrev.action = playerctl "previous";
XF86AudioNext.action = playerctl "next";
# Column sizing
"Mod+Minus".action = set-column-width "-10%";
"Mod+Equal".action = set-column-width "+10%";
# Finer height adjustments when in column with other windows.
"Mod+Shift+Minus".action = set-window-height "-10%";
"Mod+Shift+Equal".action = set-window-height "+10%";
# Misc
"Mod+Shift+V".action = toggle-window-floating;
"Mod+Shift+P".action = power-off-monitors;
"Mod+W".action = toggle-column-tabbed-display;
"Mod+S".action = spawn "sh" "-c"
''
filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png"
grim -g "$(slurp)" - | tee "$filename" | wl-copy
'';
"Mod+Shift+S".action = spawn "sh" "-c"
''
filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png"
grim -g "$(slurp)" "$filename"
edited="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)-edited.png"
satty --filename "$filename" --output-filename "$edited"
'';
"Mod+Shift+D".action = spawn "sh" "-c"
''
cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
'';
# --- System / General ---
"Mod+Return".action = spawn "foot";
"Mod+D".action = spawn "fuzzel";
"Mod+C".action = spawn "qalculate-gtk";
"Mod+BracketLeft".action = consume-or-expel-window-left;
"Mod+BracketRight".action = consume-or-expel-window-right;
"Mod+R".action = switch-preset-column-width;
"Mod+Shift+R".action = reset-window-height;
"Mod+F".action = maximize-column;
"Mod+Shift+F".action = fullscreen-window;
"Mod+Comma".action = consume-window-into-column;
"Mod+Period".action = expel-window-from-column;
"Mod+Shift+E".action = quit;
# --- Window Navigation (Focus) ---
"Mod+H".action = focus-column-left;
"Mod+L".action = focus-column-right;
"Mod+J".action = focus-workspace-down;
"Mod+K".action = focus-workspace-up;
# --- Window Management (Move) ---
"Mod+Shift+H".action = move-column-left;
"Mod+Shift+L".action = move-column-right;
"Mod+Shift+J".action = move-window-down-or-to-workspace-down;
"Mod+Shift+K".action = move-window-up-or-to-workspace-up;
# --- Window State ---
"Mod+Shift+Q".action = close-window;
"Super+Return".action = spawn "obs-cmd" "replay" "save";
} // (
builtins.listToAttrs (builtins.concatMap (keyNum: let
key = toString keyNum;
targetWS = keyNum + 1;
in [
{ name = "Mod+${key}"; value.action = focus-workspace targetWS; }
{ name = "Mod+Shift+${key}"; value.action.move-column-to-workspace = [ targetWS ]; }
]) (lib.range 1 9))
)
|