summaryrefslogtreecommitdiff
path: root/home/desktops/hyprland/settings.nix
blob: a82b6db95661a93f662a9aea81fcd51394ac80d4 (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
{
  config,
  pkgs,
  lib,
  inputs,
  ...
}: {
  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
      gesture = [
        "3, horizontal, workspace"
      ];

      # 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
}