summaryrefslogtreecommitdiff
path: root/home/desktops/sway/binds.nix
blob: d35f0a7d28054f599af1be399c6b16a6cb7968e7 (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
{config, ...}: let
  mod = "Mod4";
in {
  wayland.windowManager.sway = {
    config = {
      keybindings = {
        # apps
        "${mod}+Return" = "exec ${config.default.terminal}";
        "${mod}+l" = "exec ${config.default.lockScreen}";
        "${mod}+d" = "exec ${config.default.appLauncher}";
        "${mod}+w" = "exec ${config.default.browser}";

        # exit
        "${mod}+Shift+l" = "exit";
        # kill focused window
        "${mod}+Shift+q" = "kill";
        # reload sway
        "${mod}+F5" = "reload";

        # audio
        "XF86AudioRaiseVolume" = "exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+";
        "XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
        "XF86AudioMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
        "XF86AudioMicMute" = "exec wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";

        # media
        "XF86AudioPlay" = "exec playerctl play-pause";
        "XF86AudioNext" = "exec playerctl next";
        "XF86AudioPrev" = "exec playerctl previous";

        # backlight
        "XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
        "XF86MonBrightnessUp" = "exec brightnessctl set 5%+";

        # screenshot
        "Print" = "exec grimblast copy area";

        # move focus
        "${mod}+Left" = "focus left";
        "${mod}+Down" = "focus down";
        "${mod}+Up" = "focus up";
        "${mod}+Right" = "focus right";

        # move focused window
        "${mod}+Shift+Left" = "move left";
        "${mod}+Shift+Down" = "move down";
        "${mod}+Shift+Up" = "move up";
        "${mod}+Shift+Right" = "move right";

        # switch workspace
        "${mod}+1" = "workspace number 1";
        "${mod}+2" = "workspace number 2";
        "${mod}+3" = "workspace number 3";
        "${mod}+4" = "workspace number 4";
        "${mod}+5" = "workspace number 5";
        "${mod}+6" = "workspace number 6";
        "${mod}+7" = "workspace number 7";
        "${mod}+8" = "workspace number 8";
        "${mod}+9" = "workspace number 9";

        # move focused container to workspace
        "${mod}+Shift+1" = "move container to workspace number 1";
        "${mod}+Shift+2" = "move container to workspace number 2";
        "${mod}+Shift+3" = "move container to workspace number 3";
        "${mod}+Shift+4" = "move container to workspace number 4";
        "${mod}+Shift+5" = "move container to workspace number 5";
        "${mod}+Shift+6" = "move container to workspace number 6";
        "${mod}+Shift+7" = "move container to workspace number 7";
        "${mod}+Shift+8" = "move container to workspace number 8";
        "${mod}+Shift+9" = "move container to workspace number 9";

        # layout
        "${mod}+Shift+d" = "layout default";
        "${mod}+Shift+b" = "layout splith";
        "${mod}+Shift+v" = "layout splitv";
        "${mod}+Shift+c" = "layout tabbed";

        # fullscreen
        "${mod}+f" = "fullscreen";
        # float
        "${mod}+Shift+space" = "floating toggle";
        # focus
        "${mod}+space" = "focus mode_toggle";
        # parent
        "${mod}+a" = "focus parent";
      };
    };
  };
}