summaryrefslogtreecommitdiffstats
path: root/hyprlock.nix
blob: f78131bb6e939921b49275eb36704711be8f0bf2 (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
{ config, pkgs, lib, ... }:
let
	font = "Monospace";
in
{
	programs.hyprlock = {
		enable = true;
		settings = {
			# sample hyprlock.conf
			# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
			#
			# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
			# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
			#
			# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
			#
			# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
			#
			general = {
			    hide_cursor = false;
			};

			# uncomment to enable fingerprint authentication
			# auth {
			#     fingerprint {
			#         enabled = true
			#         ready_message = Scan fingerprint to unlock
			#         present_message = Scanning...
			#         retry_delay = 250 # in milliseconds
			#     }
			# }

			animations = {
			    enabled = true;
			    bezier = "linear, 1, 1, 0, 0";
			    animation = ["fadeIn, 1, 5, linear"
			    "fadeOut, 1, 5, linear"
			     "inputFieldDots, 1, 2, linear"
			     ];
			};

			background = {
			    monitor = "";
			    path = "screenshot";
			    blur_passes = 3;
			    blur_size = 8;
			};

			input-field =  lib.mkForce [
				{
			    monitor = "";
			    size = "20, 5";
			    outline_thickness = 3;
			    inner_color = "rgba(0, 0, 0, 0.0)"; # no fill

			    outer_color = "rgba(33ccffee) rgba(00ff99ee) 45deg";
			    check_color = "rgba(00ff99ee) rgba(ff6633ee) 120deg";
			    fail_color = "rgba(ff6633ee) rgba(ff0066ee) 40deg";

			    font_color = "rgb(143, 143, 143)";
			    fade_on_empty = false;
			    rounding = 15;

			    font_family = "${font}";
			    placeholder_text = "Input password...";
			    fail_text = "$PAMFAIL";

			    # uncomment to use a letter instead of a dot to indicate the typed password
			    # dots_text_format = *
			    # dots_size = 0.4
			    dots_spacing = 0.3;

			    # uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
			    # hide_input = true

			    position = "0, -20";
			    halign = "center";
			    valign = "center";
			    }
			];

			# TIME
			label = [ 
			{
			    monitor = "";
			    text = "$TIME"; # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
			    font_size = 90;
			    font_family = "${font}";

			    position = "-30, 0";
			    halign = "right";
			    valign = "top";
			}

			# DATE
			{
			    monitor = "";
			    text = "cmd[update:60000] date +'%A, %d %B %Y'"; # update every 60 seconds
			    font_size = 25;
			    font_family = "${font}";

			    position = "-30, -150";
			    halign = "right";
			    valign = "top";
			}
			];
		};
};
}