lockscreen: replace hyprlock with quickshell WlSessionLock

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
rope 2026-07-08 11:04:27 +01:00
parent 24123270b2
commit bedb11930f
2 changed files with 162 additions and 54 deletions

View file

@ -52,7 +52,6 @@ in
brightnessctl
swayosd
playerctl
hyprlock
hypridle
hyprshot
hyprpicker
@ -161,6 +160,9 @@ in
focus_on_activate = false;
vrr = 2;
background_color = rgb c.base00;
# If quickshell dies while holding the session lock, let its
# restarted instance re-attach instead of a dead red screen.
allow_session_lock_restore = true;
};
# vfr moved from misc: to debug: in 0.55.0
@ -340,56 +342,8 @@ in
'';
};
programs.hyprlock = {
enable = true;
settings = {
general = {
grace = 5;
hide_cursor = true;
};
background = {
blur_passes = 3;
blur_size = 8;
brightness = 0.6;
};
input-field = {
size = "280, 44";
outline_thickness = 2;
dots_size = 0.25;
dots_spacing = 0.2;
dots_center = true;
fade_on_empty = true;
fade_timeout = 3000;
placeholder_text = "";
fail_text = "";
position = "0, -40";
halign = "center";
valign = "center";
rounding = 8;
};
label = [
{
text = "$TIME";
color = "rgb(${c.base05})";
font_size = 72;
font_family = "Inter";
position = "0, 120";
halign = "center";
valign = "center";
}
{
text = "cmd[update:60000] date +'%A, %d %B'";
color = "rgb(${c.base04})";
font_size = 16;
font_family = "Inter";
position = "0, 60";
halign = "center";
valign = "center";
}
];
};
};
# Lock screen is quickshell's WlSessionLock (settings/quickshell.nix),
# triggered via `qs ipc call lock lock`.
services.hypridle = lib.mkIf isMacbook (
let
# Skip the action if any MPRIS player is playing — covers windowed
@ -400,7 +354,7 @@ in
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
lock_cmd = "qs ipc call lock lock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
};