2024-11-28 01:14:34 +08:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
let
|
|
|
|
defaultMode = pkgs.writeText "darkman-default-mode" "light";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
services.darkman.enable = true;
|
|
|
|
|
2024-12-26 13:35:29 +08:00
|
|
|
preservation.preserveAt."/persist".directories = [ ".cache/darkman" ];
|
2024-11-28 01:14:34 +08:00
|
|
|
|
|
|
|
systemd.user.tmpfiles.rules = [
|
|
|
|
"C %h/.cache/darkman/mode.txt - - - - ${defaultMode}"
|
|
|
|
"z %h/.cache/darkman/mode.txt 644 - - -"
|
|
|
|
];
|
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
(writeShellApplication {
|
|
|
|
name = "toggle-theme";
|
|
|
|
runtimeInputs = lib.singleton config.services.darkman.package;
|
|
|
|
text = ''
|
|
|
|
darkman toggle
|
|
|
|
'';
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
home.activation.restartDarkman = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
|
|
if ${config.systemd.user.systemctlPath} --user is-active darkman; then
|
|
|
|
${config.systemd.user.systemctlPath} --user restart darkman
|
|
|
|
fi
|
|
|
|
'';
|
2024-11-28 14:20:33 +08:00
|
|
|
|
|
|
|
systemd.user.services.darkman.Unit = {
|
|
|
|
After = [ "graphical-session.target" ];
|
|
|
|
Requisite = [ "graphical-session.target" ];
|
|
|
|
};
|
2024-11-28 01:14:34 +08:00
|
|
|
}
|