feat(desktop/lockscreen): add hyprlock

This commit is contained in:
Mohammad Rafiq 2025-05-20 21:00:03 +08:00
parent 5cb05a2dcb
commit 71706390b4
No known key found for this signature in database
8 changed files with 62 additions and 0 deletions

View file

@ -14,6 +14,7 @@
desktop.windowManager = "hyprland";
desktop.browser = "firefox";
desktop.terminal = "ghostty";
desktop.lockscreen = "hyprlock";
home.shellAliases = {
v = "nvim";

View file

@ -8,6 +8,7 @@
{
options.desktop = {
windowManager = lib.pantheon.mkStrOption;
lockscreen = lib.pantheon.mkStrOption;
browser = lib.pantheon.mkStrOption;
terminal = lib.pantheon.mkStrOption;
};

View file

@ -0,0 +1,47 @@
{
config,
lib,
...
}:
{
config = lib.mkMerge [
(lib.mkIf (config.desktop.lockscreen == "hyprlock") {
home.sessionVariables.LOCKSCREEN = "hyprlock";
programs.hyprlock = {
enable = true;
settings = {
general.hide_cursor = true;
general.ignore_empty_input = true;
background = {
blur_passes = 5;
blur_size = 5;
};
label = {
text = ''hi, $USER.'';
font_size = 32;
halign = "center";
valign = "center";
position = "0, 0";
zindex = 1;
shadow_passes = 5;
shadow_size = 5;
};
input-field = {
fade_on_empty = true;
size = "200, 45";
halign = "center";
valign = "center";
position = "0, -5%";
placeholder_text = "";
zindex = 1;
shadow_passes = 5;
shadow_size = 5;
};
};
};
})
];
}

View file

@ -20,6 +20,8 @@ in
"${mainMonitor.id}, ${mainMonitor.resolution}@${mainMonitor.refresh-rate}, auto, ${mainMonitor.scale}"
", preferred, auto, 1"
];
exec-once = [ "uwsm app -- $LOCKSCREEN" ];
}
(import ./decoration.nix)
(import ./keybinds.nix)

View file

@ -6,6 +6,7 @@
"SUPER, return, exec, uwsm app -- $TERMINAL $MULTIPLEXER"
"SUPER, O, exec, uwsm app -- $BROWSER"
"SUPER, Escape, exec, uwsm app -- $LOCKSCREEN"
"SUPER, H, cyclenext, visible"
"SUPER, L, cyclenext, visible prev"

View file

@ -12,5 +12,6 @@
refresh-rate = lib.pantheon.mkStrOption;
};
windowManager = lib.pantheon.mkStrOption;
lockscreen = lib.pantheon.mkStrOption;
};
}

View file

@ -0,0 +1,8 @@
{ config, lib, ... }:
{
config = lib.mkMerge [
(lib.mkIf (config.desktop.lockscreen == "hyprlock") {
security.pam.services.hyprlock = { };
})
];
}

View file

@ -16,6 +16,7 @@
hardware.gpu = "nvidia";
desktop.windowManager = "hyprland";
desktop.lockscreen = "hyprlock";
desktop.mainMonitor = {
id = "desc:OOO AN-270W04K";
scale = "2";