aboutsummaryrefslogtreecommitdiff
path: root/modules/hosts/desktop/hyprland/hyprlock.nix
blob: 2d2ab037ccadeecc15fbc1955ea5a0687ff30904 (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,
  lib,
  username,
  ...
}:

let
  inherit (lib) mkEnableOption mkIf;
  cfg = config.nx.desktop.hyprlock;
in
{
  options.nx.desktop.hyprlock.enable = mkEnableOption "Hyprlock is a screen locker for Hyprland." // {
    default = config.nx.desktop.hyprland.enable;
  };
  config = mkIf cfg.enable {
    programs.hyprlock = {
      enable = true;
    };
    home-manager.users.${username}.programs.hyprlock = {
      enable = true;
      settings = {
        general = {
          immediate_render = true;
        };

        background = [
          {
            monitor = "";
            path = "/etc/nixos/images/pond.jpg";
          }
        ];

        input-field = [
          {
            monitor = "";
            size = "300, 30";
            outline_thickness = 0;
            dots_size = 0.25;
            dots_spacing = 0.55;
            dots_center = true;
            dots_rounding = -1;
            outer_color = "rgba(242, 243, 244, 0)";
            inner_color = "rgba(242, 243, 244, 0)";
            font_color = "rgba(242, 243, 244, 0.75)";
            fade_on_empty = false;
            placeholder_text = "";
            hide_input = false;
            check_color = "rgba(204, 136, 34, 0)";
            fail_color = "rgba(204, 34, 34, 0)";
            fail_text = "$FAIL <b>($ATTEMPTS)</b>";
            fail_transition = 300;
            capslock_color = -1;
            numlock_color = -1;
            bothlock_color = -1;
            invert_numlock = false;
            swap_font_color = false;
            position = "0, -468";
            halign = "center";
            valign = "center";
          }
        ];

        label = [
          {
            monitor = "";
            text = ''cmd[update:1000] echo "$(date +"%A, %B %d")"'';
            color = "rgba(242, 243, 244, 0.75)";
            font_size = 20;
            position = "0, 405";
            halign = "center";
            valign = "center";
          }
          {
            monitor = "";
            text = ''cmd[update:1000] echo "$(date +"%k:%M")"'';
            color = "rgba(242, 243, 244, 0.75)";
            font_size = 93;
            position = "0, 310";
            halign = "center";
            valign = "center";
          }
          {
            monitor = "";
            text = "${username}";
            color = "rgba(242, 243, 244, 0.75)";
            font_size = 12;
            position = "0, -407";
            halign = "center";
            valign = "center";
          }
          {
            monitor = "";
            text = "Enter Password";
            color = "rgba(242, 243, 244, 0.75)";
            font_size = 10;
            position = "0, -438";
            halign = "center";
            valign = "center";
          }
        ];

        image = [
          {
            monitor = "";
            path = "/etc/nixos/images/pf.jpg";
            border_color = "0xffdddddd";
            border_size = 0;
            size = 73;
            rounding = -1;
            rotate = 0;
            reload_time = -1;
            reload_cmd = "";
            position = "0, -353";
            halign = "center";
            valign = "center";
          }
        ];
      };
    };
  };
}