commit 23fed5c92fa50d65f00eb815f21cfb58e5458ec7
parent c920b8e54b1d5ed231b6389e9acbc32f0f809355
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Sun, 24 Aug 2025 15:57:56 +0200
parent c920b8e54b1d5ed231b6389e9acbc32f0f809355
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Sun, 24 Aug 2025 15:57:56 +0200
homeManagerModules/services: add `dssd` Dead Simple Secret Daemon
1 file changed, 50 insertions(+), 0 deletions(-)
diff --git a/homeManagerModules/services/dssd/default.nix b/homeManagerModules/services/dssd/default.nix @@ -0,0 +1,50 @@ +{ tgcFlake, tgcMaintainers, ... }: +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.services.dssd; + busName = "org.freedesktop.secrets"; + +in +{ + meta.maintainers = [ tgcMaintainers.zaphyra ]; + + options.services.dssd = { + enable = lib.mkEnableOption "Dead Simple libSecret Daemon"; + package = lib.mkPackageOption tgcFlake.packages.${pkgs.system} "dssd" { }; + }; + + config = lib.mkIf cfg.enable { + assertions = [ + (lib.hm.assertions.assertPlatform "services.dssd" pkgs lib.platforms.linux) + { + assertion = !config.services.gnome-keyring.enable; + message = '' + Only one secrets service per user can be enabled at a time. + Other services enabled: + - gnome-keyring + ''; + } + ]; + + dbus.packages = [ cfg.package ]; + + systemd.user.services.dssd = { + Unit = { + Description = "Dead Simple Secret Daemon"; + Documentation = "https://github.com/ylxdzsw/dssd"; + }; + + Service = { + Type = "dbus"; + ExecStart = lib.getExe cfg.package; + BusName = busName; + }; + }; + }; + +}