aboutsummaryrefslogtreecommitdiff
path: root/modules/home-manager/YATwm/default.nix
blob: 587e9290145f80d7fe177ec81b6977ffa99a2f9d (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
112
113
114
115
116
117
{ inputs, config, ... }:
let
    hm = config.flake.modules.homeManager;
in
{
    flake.modules.homeManager.YATwm =
        {
            pkgs,
            lib,
            ...
        } : {
            imports = [
                hm.polybar
                hm.rofi
                hm.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);
            };
        };
}