47 lines
1.1 KiB
Nix
47 lines
1.1 KiB
Nix
|
# 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")}";
|
||
|
};
|
||
|
}
|