From 2e0f6163f61cb1e4195f1a08ad1148e57a4f5843 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sun, 2 Aug 2026 18:18:07 +0530 Subject: feat: Added package option to each module, darkman service - Added package options to each module which defines the package/derivation that should be used in all other modules - Added a systemd oneshot service that autosets darkman to dark mode - Removed the prompt from rofi --- modules/desktop/darkman/default.nix | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'modules/desktop/darkman/default.nix') diff --git a/modules/desktop/darkman/default.nix b/modules/desktop/darkman/default.nix index 4aef68d..9dc7ef9 100644 --- a/modules/desktop/darkman/default.nix +++ b/modules/desktop/darkman/default.nix @@ -7,12 +7,15 @@ }: { options.desktop.darkman = { - enable = lib.mkEnableOption "Enables darkman automatic dark/light mode switching." // { - default = true; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = config.services.darkman.package; + description = "The darkman package to use."; }; }; - config = lib.mkIf (config.desktop.enable && config.desktop.darkman.enable) { + config = lib.mkIf config.desktop.enable { services.darkman = { enable = true; settings = { @@ -32,8 +35,21 @@ }; # Always dark by default - home.activation.forceDarkman = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - ${pkgs.darkman}/bin/darkman set dark || true - ''; + systemd.user.services.darkman-set-theme = { + Unit = { + Description = "Set Darkman to dark on graphical session startup"; + PartOf = [ "graphical-session.target" ]; + After = [ "graphical-session.target" ]; + }; + + Service = { + Type = "oneshot"; + ExecStart = "${lib.getExe config.desktop.darkman.package} set dark"; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + }; }; } -- cgit v1.2.3