72 lines
1.6 KiB
Nix
72 lines
1.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
rgb = color: "rgb(${color})";
|
|
lock_cmd = "${config.programs.hyprlock.package}/bin/hyprlock";
|
|
color = {
|
|
inherit (config.lib.stylix.colors) yellow red;
|
|
bg = config.lib.stylix.colors.base00;
|
|
fg = config.lib.stylix.colors.base07;
|
|
text = config.lib.stylix.colors.base05;
|
|
};
|
|
in {
|
|
services.hypridle = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
before_sleep_cmd = "rbw lock; hyprlock";
|
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
ignore_dbus_inhibit = false;
|
|
lock_cmd = "pidof ${lock_cmd} || ${lock_cmd}";
|
|
};
|
|
|
|
listener = [
|
|
{
|
|
timeout = 300;
|
|
on-timeout = "loginctl lock-session";
|
|
}
|
|
{
|
|
timeout = 1200;
|
|
on-timeout = "hyprctl dispatch dpms off";
|
|
on-resume = "hyprctl dispatch dpms on";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
programs.hyprlock = {
|
|
enable = true;
|
|
settings = lib.mkForce {
|
|
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
|
|
general = {
|
|
hide_cursor = true;
|
|
grace = 10;
|
|
ignore_empty_input = true;
|
|
};
|
|
|
|
background = [
|
|
{
|
|
path = "screenshot";
|
|
blur_passes = 3;
|
|
blur_size = 8;
|
|
}
|
|
];
|
|
|
|
input-field = [
|
|
{
|
|
dots_center = true;
|
|
fade_on_empty = true;
|
|
outline_thickness = 5;
|
|
shadow_passes = 2;
|
|
inner_color = rgb color.bg;
|
|
outer_color = rgb color.fg;
|
|
font_color = rgb color.text;
|
|
fail_color = rgb color.red;
|
|
check_color = rgb color.yellow;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|