2024-03-01 14:49:11 -05:00
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
lib,
|
|
|
|
|
config,
|
|
|
|
|
theme,
|
|
|
|
|
...
|
|
|
|
|
}: let
|
|
|
|
|
suspendScript = pkgs.writeShellScript "suspend-script" ''
|
|
|
|
|
${pkgs.pipewire}/bin/pw-cli i all | ${pkgs.ripgrep}/bin/rg running
|
|
|
|
|
# only suspend if audio isn't running
|
|
|
|
|
if [ $? == 1 ]; then
|
|
|
|
|
${pkgs.systemd}/bin/systemctl suspend
|
|
|
|
|
fi
|
|
|
|
|
'';
|
|
|
|
|
in {
|
|
|
|
|
programs.swaylock = {
|
2024-03-01 14:52:33 -05:00
|
|
|
enable = true;
|
2024-03-01 14:49:11 -05:00
|
|
|
package = pkgs.swaylock-effects;
|
|
|
|
|
settings = with theme.colors; {
|
|
|
|
|
clock = true;
|
|
|
|
|
color = base;
|
|
|
|
|
font = "Work Sans";
|
|
|
|
|
image = "${theme.wallpaper}";
|
|
|
|
|
show-failed-attempts = false;
|
|
|
|
|
indicator = true;
|
|
|
|
|
indicator-radius = 200;
|
|
|
|
|
indicator-thickness = 20;
|
|
|
|
|
line-color = "00000000";
|
|
|
|
|
ring-color = "00000000";
|
|
|
|
|
inside-color = "00000000";
|
|
|
|
|
key-hl-color = "f2cdcd";
|
|
|
|
|
separator-color = "00000000";
|
2024-03-01 14:52:33 -05:00
|
|
|
text-color = text;
|
2024-03-01 14:49:11 -05:00
|
|
|
text-caps-lock-color = "";
|
2024-03-01 14:52:33 -05:00
|
|
|
line-ver-color = love;
|
|
|
|
|
ring-ver-color = rose;
|
2024-03-01 14:49:11 -05:00
|
|
|
inside-ver-color = base;
|
|
|
|
|
text-ver-color = text;
|
2024-03-01 14:52:33 -05:00
|
|
|
ring-wrong-color = foam;
|
|
|
|
|
text-wrong-color = foam;
|
2024-03-01 14:49:11 -05:00
|
|
|
inside-wrong-color = base;
|
|
|
|
|
inside-clear-color = base;
|
|
|
|
|
text-clear-color = text;
|
2024-03-01 14:52:33 -05:00
|
|
|
ring-clear-color = iris;
|
2024-03-01 14:49:11 -05:00
|
|
|
line-clear-color = base;
|
|
|
|
|
line-wrong-color = base;
|
2024-03-01 14:52:33 -05:00
|
|
|
bs-hl-color = foam;
|
2024-03-01 14:49:11 -05:00
|
|
|
line-uses-ring = false;
|
|
|
|
|
grace = 2;
|
|
|
|
|
grace-no-mouse = true;
|
|
|
|
|
grace-no-touch = true;
|
|
|
|
|
datestr = "%d.%m";
|
|
|
|
|
fade-in = "0.1";
|
|
|
|
|
ignore-empty-password = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
services.swayidle = {
|
|
|
|
|
enable = true;
|
|
|
|
|
events = [
|
|
|
|
|
{
|
|
|
|
|
event = "before-sleep";
|
|
|
|
|
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
event = "lock";
|
|
|
|
|
command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
event = "lock";
|
|
|
|
|
command = "${pkgs.gtklock}/bin/gtklock";
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
timeouts = [
|
|
|
|
|
{
|
|
|
|
|
timeout = 300;
|
|
|
|
|
command = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off";
|
|
|
|
|
resumeCommand = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
timeout = 310;
|
|
|
|
|
command = suspendScript.outPath;
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
systemd.user.services.swayidle.Install.WantedBy = lib.mkForce ["hyprland-session.target"];
|
|
|
|
|
}
|