{ pkgs, lib, ... }: let wrappedKeepassxc = pkgs.symlinkJoin { inherit (pkgs.keepassxc) name; paths = with pkgs; [ keepassxc (pkgs.writeTextFile { name = "org.keepassxc.KeePassXC"; destination = "/share/dbus-1/services/org.keepassxc.KeePassXC.MainWindow.service"; text = '' [D-BUS Service] Name=org.keepassxc.KeePassXC.MainWindow Exec=${lib.getExe' pkgs.coreutils "false"} SystemdService=keepassxc.service ''; }) (pkgs.writeTextFile { name = "org.freedesktop.secrets"; destination = "/share/dbus-1/services/org.freedesktop.secrets.service"; text = '' [D-BUS Service] Name=org.freedesktop.secrets Exec=${lib.getExe' pkgs.coreutils "false"} SystemdService=keepassxc.service ''; }) ]; }; in { config = { home.packages = [ wrappedKeepassxc ]; xdg.dataFile = { "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; "dbus-1/services/org.freedesktop.secrets.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service"; "dbus-1/services/org.kde.kwalletd6.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd6.service"; "dbus-1/services/org.kde.kwalletd5.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd5.service"; }; home.persistence."/persistent" = { directories = [ ".config/keepassxc" ]; files = [ "store.kdbx" ]; }; services.gnome-keyring.enable = lib.mkForce false; }; }