aboutsummaryrefslogtreecommitdiff
path: root/home-manager/hyprland/default.nix~
blob: 569d7ffb5201934ac860015cc5e4f10fe3e4d217 (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
{
    pkgs,
    ...
}:
{
    imports = [
        ../rofi
        ../kitty
        ../waybar
    ];
    
    wayland.windowManager.hyprland= {
        enable = true;
        xwayland.enable = true;
        settings = {
            "$mod" = "SUPER";
            exec-once = [
                "waybar"
                "xss-lock --transfer-sleep-lock -- swaylock"
            ];
            bind =
                [
                    "$mod, C, exec, firefox"
                    #", Print, exec, grimblast copy area"
                    "$mod, D, exec, rofi -i -show drun -disable-history"
                    "$mod Shift, E, exit"
                    "$mod, Return, exec, kitty"
                    "$mod, T, togglesplit"
                    "$mod Control, left, workspace, m-1"
                    "$mod Control, h, workspace, m-1"
                    "$mod Control, right, workspace, m+1"
                    "$mod Control, l, workspace, m+1"
                    "$mod, x, exec, swaylock"
                    "$mod Shift, x, exec, swaylock"
                    "$mod Shift, x, exec, systemctl suspend"
                    "$mod Shift, MINUS, exec, emacsclient -c"
                ]
                ++ (
                    # workspaces
                    # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
                    builtins.concatLists (builtins.genList (
                        x: let
                            ws = let
                                c = (x + 1) / 10;
                            in
                              builtins.toString (x + 1 - (c * 10));
                        in [
                            "$mod, ${ws}, workspace, ${toString (x + 1)}"
                            "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
                        ]
                    )
                        10)
                )
                ++ (
                    builtins.map (
                        x: "$mod, ${ builtins.elemAt x 0}, movefocus, ${builtins.elemAt x 1}\nbind=$mod Shift, ${builtins.elemAt x 0}, movewindow, ${builtins.elemAt x 1}"
                    )
                        [
                            ["h" "l"]
                            ["left" "l"]
                            ["j" "d"]
                            ["down" "d"]
                            ["k" "u"]
                            ["up" "u"]
                            ["l" "r"]
                            ["right" "r"]
                        ]
                );
            monitor =
                [
                    "eDP-1, 1920x1080, 0x0, 1"
                    "HDMI-A-1, 1920x1080, 1920x0, 1"
                ];
            input = {
                touchpad.natural_scroll = true;
                #touchpad.scroll_factor = 0.5;
                accel_profile = "flat";
                follow_mouse = true;
                #sensitivity = 0.00;
            };
            decoration.rounding = 10;
            animation = [
                "workspaces,1,5,easeOutQuint,slide"
            ];
            bezier = [
                "easeInOutCubic,0.65,0,0.35,1"
                "easeOutQuint,0.22,1,0.36,1"
            ];
        };
    };

    home.packages = with pkgs; [
        swaylock
    ];
}