summaryrefslogtreecommitdiff
path: root/modules/desktops/hyprland/settings.nix
blob: da55533571c6438aec5fc673f3d5c4faff722d6b (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
{
  config,
  pkgs,
  lib,
  inputs,
  ...
}: {
  home-manager.users.${config.user} = {
    wayland.windowManager.hyprland = {
      importantPrefixes = [
        "bezier"
        "enabled"
        "output"
      ];

      settings = {
        # Monitors
        monitorv2 =
          map (monitor: {
            output = monitor.name;
            mode = "highres";
            scale = toString monitor.scale;
            bitdepth = toString monitor.bitdepth;
          })
          config.monitors;

        # Autostart
        exec-once = config.autoRun;

        # General
        general = {
          gaps_in = config.theme.innerGap;
          gaps_out = config.theme.outerGap;
          layout = "hy3";
          resize_on_border = "yes";
          extend_border_grab_area = 20;
          border_size = config.theme.borderWidth;
          "col.active_border" = "rgb(${config.theme.colors.primary})";
          "col.inactive_border" = "rgb(${config.theme.colors.surface})";
        };

        # Gestures
        gestures = {
          workspace_swipe = true;
          workspace_swipe_fingers = 3;
          workspace_swipe_forever = true;
          workspace_swipe_cancel_ratio = 0.15;
        };

        # Decoration
        decoration = {
          rounding = config.theme.outerRadius;
          shadow.enabled = false;
          blur = {
            enabled = config.theme.blur;
            size = 4;
            passes = 2;
            noise = 0.008;
            contrast = 0.8916;
            brightness = 0.8;
          };
        };

        animations = {
          enabled = true;

          bezier = [
            "windowIn, 0.06, 0.71, 0.25, 1"
            "windowResize, 0.04, 0.67, 0.38, 1"
          ];

          animation = [
            "windowsIn, 1, 3, windowIn, slide #popin 20%"
            "windowsOut, 1, 3, windowIn, slide #popin 70%"
            "windowsMove, 1, 2.5, windowResize"
            "border, 1, 10, default"
            "borderangle, 1, 8, default"
            "fade, 1, 3, default"
            "workspaces, 1, 6, default"
            "layers, 1, 5, windowIn, slide"
          ];
        };

        # Input
        input = {
          kb_layout = "us";
          kb_variant = "";
          kb_model = "";
          kb_options = "gtp:alt_shift_toggle, compose:ralt";
          kb_rules = "";
          follow_mouse = 1;
          touchpad = {
            natural_scroll = "yes";
          };
          sensitivity = 0;
        };

        # XWayland
        xwayland = {
          force_zero_scaling = "true";
          use_nearest_neighbor = "false";
        };

        # Misc
        misc = {
          disable_hyprland_logo = true;
          disable_splash_rendering = true;
          key_press_enables_dpms = true;
          mouse_move_enables_dpms = true;
          enable_anr_dialog = false;
          vrr = 1;
        };

        # Ecosystem
        ecosystem = {
          no_update_news = true;
          no_donation_nag = true;
        };

        # Experimental
        experimental = {
          xx_color_management_v4 = true;
        };
      }; # end settings
    }; # end hyprland
  }; # end home-manager
}