nixos-config/home-manager/profiles/swaylock/default.nix

47 lines
1.1 KiB
Nix
Raw Permalink Normal View History

2024-11-28 01:14:34 +08:00
# Portions of this file are sourced from
# https://github.com/NickCao/flakes/blob/3b03efb676ea602575c916b2b8bc9d9cd13b0d85/nixos/mainframe/home.nix
{
config,
pkgs,
lib,
...
}:
let
mkBlurredWallpaper =
mode:
pkgs.runCommand "wallpaper-blurred-${mode}" { nativeBuildInputs = with pkgs; [ imagemagick ]; } ''
magick convert -blur 14x5 ${config.theme.${mode}.wallpaper} $out
'';
in
{
programs.swaylock = {
enable = true;
settings = {
show-failed-attempts = true;
daemonize = true;
image = "~/.config/swaylock/image";
scaling = "fill";
};
};
systemd.user.tmpfiles.rules = [
"L %h/.config/swaylock/image - - - - ${mkBlurredWallpaper "light"}"
];
services.darkman =
let
mkScript =
mode:
pkgs.writeShellApplication {
name = "darkman-switch-swaylock-${mode}";
text = ''
ln --force --symbolic --verbose "${mkBlurredWallpaper mode}" "$HOME/.config/swaylock/image"
'';
};
in
{
lightModeScripts.swaylock = "${lib.getExe (mkScript "light")}";
darkModeScripts.swaylock = "${lib.getExe (mkScript "dark")}";
};
}