summaryrefslogtreecommitdiff
path: root/hm/env/niri/binds.nix
blob: b2031e23ab20fb36c92338defbfa129e5051b5b2 (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
138
139
140
{
  config,
  lib,
  pkgs,
  ...
}:
with config.lib.niri.actions;
let
  playerctl = spawn "${pkgs.playerctl}/bin/playerctl";
  ss = "${toString config.hm.conf.xdg-dirs.mediaPath}/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)";
in
{
  "Mod+O" = {
    action = toggle-overview;
    repeat = false;
  };
  "Mod+Slash".action = show-hotkey-overlay;

  XF86AudioRaiseVolume.action = playerctl "volume" "0.03+";
  XF86AudioLowerVolume.action = playerctl "volume" "0.03-";
  XF86AudioMute.action = spawn "sh" "-c" ''
    wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
    wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
  '';
  XF86Tools.action = spawn "sh" "-c" ''
    wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
    wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
  '';

  "Mod+WheelScrollDown".action = focus-column-right;
  "Mod+WheelScrollUp".action = focus-column-left;
  "Mod+Shift+WheelScrollDown".action = move-column-right;
  "Mod+Shift+WheelScrollUp".action = move-column-left;

  "Super+WheelScrollDown".action = focus-workspace-down;
  "Super+WheelScrollUp".action = focus-workspace-up;
  "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down;
  "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up;

  XF86Launch5.action = consume-or-expel-window-right;
  XF86Launch6.action = consume-or-expel-window-left;
  XF86Launch7.action = switch-preset-column-width;

  "Super+Shift+L".action = spawn "swaylock" "-f";
  XF86AudioPlay.action = playerctl "play-pause";
  XF86AudioPrev.action = playerctl "previous";
  XF86AudioNext.action = playerctl "next";

  "Mod+Minus".action = set-column-width "-10%";
  "Mod+Equal".action = set-column-width "+10%";

  "Mod+Shift+Minus".action = set-window-height "-10%";
  "Mod+Shift+Equal".action = set-window-height "+10%";

  "Mod+Shift+V".action = toggle-window-floating;
  "Mod+W".action = toggle-column-tabbed-display;

  "Mod+XF86Launch7" = {
    action = spawn "sh" "-c" ''
      grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
    '';
    repeat = false;
  };
  "Mod+Shift+XF86Launch7" = {
    action = spawn "sh" "-c" ''
      grim -g "$(slurp)" ${ss}.png
      satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
    '';
    repeat = false;
  };

  "Mod+S" = {
    action = spawn "sh" "-c" ''
      grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
    '';
    repeat = false;
  };

  "Mod+Shift+S" = {
    action = spawn "sh" "-c" ''
      grim -g "$(slurp)" ${ss}.png
      satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
    '';
    repeat = false;
  };

  "Mod+Shift+D".action = spawn "sh" "-c" ''
    cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
  '';

  "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;

  "Mod+H".action = focus-column-left;
  "Mod+L".action = focus-column-right;
  "Mod+J".action = focus-workspace-down;
  "Mod+K".action = focus-workspace-up;

  "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;

  "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)
))