aboutsummaryrefslogtreecommitdiff
path: root/home-manager/YATwm/default.nix
blob: f63c8ca4b6fe637b880d12462e457991870f3a5a (plain) (blame)
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
{
    pkgs,
    inputs,
    lib,
    ...
} : {
    imports = [
        ../polybar
        ../rofi
        ../kitty
        inputs.YATwm.homeManagerModules.default
    ];
    home.packages = with pkgs; [
		i3lock
        xss-lock
		networkmanagerapplet
		flameshot
		picom
		nitrogen
        pamixer
        kitty
        alacritty
    ];

    xsession.windowManager.YATwm = {
        enable = true;
        package = inputs.YATwm.packages.x86_64-linux.YATwm;
        useEmacsBinds = true;
        quitKey = "C-s-g";
        swapMods = false;
        keybinds = let
            left = "h";
            right = "l";
            up = "k";
            down = "j";
            wsBind = key: ws: {
                "s-${key}" = "changeWS ${ws}";
                "s-S-${key}" = "wToWS ${ws}";
            };
            wsBinds = workspaces: lib.attrsets.concatMapAttrs (key: ws: wsBind key ws) workspaces;
        in {
            # Important
            "s-E" = "exit";
            "s-R" = "reload";

            # Directions
            "s-${left}" = "focChange left";
            "s-${right}" = "focChange right";
            "s-${up}" = "focChange up";
            "s-${down}" = "focChange down";

            # Tiling
            "s-t" = "toggle";
            "s-f" = "fullscreen";
            
            # Application shortcuts
            "s-d" = "bashSpawn rofi -i -show drun -disable-history";
            "s-D" = "bashSpawn prime-run rofi -i -show drun -disable-history";
            "s-g" = "bashSpawn ~/bin/rofi-passmenu";
            "s-RET" = "bashSpawn kitty";
            # "s-r k" = "spawn kitty";
            "s-c" = "spawn firefox";
            "s-S--" = "bashSpawn emacsclient -c";
            "s-S" = "spawn flameshot gui";
            "s-x" = "spawn loginctl lock-session";
            "s-X" = "bashSpawn loginctl lock-session && systemctl suspend";
            "s-Q" = "kill";

            # Sound
            "s-[" = "spawn playerctl -p firefox play-pause";
            "s-]" = "spawn playerctl -p spotify play-pause";
            
            # Special workspaces
            "s-p s" = "changeWS 11";
            "s-S-p s" = "wToWS 11";
        } //
        wsBinds {
            "1" = "1";
            "2" = "2";
            "3" = "3";
            "4" = "4";
            "5" = "5";
            "6" = "6";
            "7" = "7";
            "8" = "8";
            "9" = "9";
            "0" = "10";
        };
        workspaces = [
            {name = "1: A";}
            {name = "2: B";}
            {name = "3: C";}
            {name = "4: D";}
            {name = "5: E";}
            {name = "6: F"; monitorPriorities = [2 1];}
            {name = "7: G"; monitorPriorities = [2 1];}
            {name = "8: H"; monitorPriorities = [2 1];}
            {name = "9: I"; monitorPriorities = [2 1];}
            {name = "10: J"; monitorPriorities = [2 1];}
            {name = "S"; monitorPriorities = [1];}
        ];
        startup = [
            {command = "~/.config/polybar/launch.sh"; once = false;}
            {command = "picom --legacy-backends -fD 3"; once = false;}
            {command = "xss-lock --transfer-sleep-lock -- i3lock -eti ~/Documents/lockscreen.png --nofork"; bash = false;}
            {command = "nitrogen --restore";}
            {command = "nm-applet"; once = false; bash = false;}
        ];
        #extraConfig = "bindmode normal\n" + (builtins.readFile ./config);
    };
}