diff options
| -rw-r--r-- | accounts/gkleen@skadhi/default.nix | 4 | ||||
| -rw-r--r-- | accounts/gkleen@skadhi/keepassxc.nix | 71 |
2 files changed, 36 insertions, 39 deletions
diff --git a/accounts/gkleen@skadhi/default.nix b/accounts/gkleen@skadhi/default.nix index 6d8195aa..67d249c5 100644 --- a/accounts/gkleen@skadhi/default.nix +++ b/accounts/gkleen@skadhi/default.nix | |||
| @@ -3,7 +3,7 @@ let | |||
| 3 | user = config.users.users.${userName}; | 3 | user = config.users.users.${userName}; |
| 4 | in { | 4 | in { |
| 5 | imports = [ | 5 | imports = [ |
| 6 | ./greetd.nix ./rzm ./email | 6 | ./greetd.nix ./rzm ./email ./keepassxc.nix |
| 7 | ] ++ (with flake.nixosModules.userProfiles.${userName}; [ | 7 | ] ++ (with flake.nixosModules.userProfiles.${userName}; [ |
| 8 | zsh mpv yt-dlp | 8 | zsh mpv yt-dlp |
| 9 | ]) ++ (with flake.nixosModules.systemProfiles; [ | 9 | ]) ++ (with flake.nixosModules.systemProfiles; [ |
| @@ -62,7 +62,7 @@ in { | |||
| 62 | home-manager.users.${userName} = { sysConfig, config, ... }: { | 62 | home-manager.users.${userName} = { sysConfig, config, ... }: { |
| 63 | imports = [ | 63 | imports = [ |
| 64 | flakeInputs.nix-index-database.homeModules.nix-index | 64 | flakeInputs.nix-index-database.homeModules.nix-index |
| 65 | ./niri.nix ./shell ./emacs ./zsh ./ssh ./keepassxc.nix ./firefox | 65 | ./niri.nix ./shell ./emacs ./zsh ./ssh ./firefox |
| 66 | ]; | 66 | ]; |
| 67 | 67 | ||
| 68 | home.stateVersion = "26.05"; | 68 | home.stateVersion = "26.05"; |
diff --git a/accounts/gkleen@skadhi/keepassxc.nix b/accounts/gkleen@skadhi/keepassxc.nix index 7b7d60ef..c399450d 100644 --- a/accounts/gkleen@skadhi/keepassxc.nix +++ b/accounts/gkleen@skadhi/keepassxc.nix | |||
| @@ -1,53 +1,50 @@ | |||
| 1 | { pkgs, lib, ... }: | 1 | { pkgs, lib, ... }: |
| 2 | let | 2 | { |
| 3 | wrappedKeepassxc = pkgs.symlinkJoin { | 3 | config = { |
| 4 | inherit (pkgs.keepassxc) name; | 4 | environment.systemPackages = [ pkgs.keepassxc ]; |
| 5 | paths = with pkgs; [ | 5 | |
| 6 | keepassxc | 6 | home-manager.users.gkleen = { ... }: { |
| 7 | (pkgs.writeTextFile { | 7 | xdg.dataFile = { |
| 8 | name = "org.keepassxc.KeePassXC"; | 8 | "dbus-1/services/org.keepassxc.KeePassXC.MainWindow.service".text = '' |
| 9 | destination = "/share/dbus-1/services/org.keepassxc.KeePassXC.MainWindow.service"; | ||
| 10 | text = '' | ||
| 11 | [D-BUS Service] | 9 | [D-BUS Service] |
| 12 | Name=org.keepassxc.KeePassXC.MainWindow | 10 | Name=org.keepassxc.KeePassXC.MainWindow |
| 13 | Exec=${lib.getExe' pkgs.coreutils "false"} | 11 | Exec=${lib.getExe' pkgs.coreutils "false"} |
| 14 | SystemdService=keepassxc.service | 12 | SystemdService=keepassxc.service |
| 15 | ''; | 13 | ''; |
| 16 | }) | 14 | "dbus-1/services/org.freedesktop.secrets.service".text = '' |
| 17 | (pkgs.writeTextFile { | ||
| 18 | name = "org.freedesktop.secrets"; | ||
| 19 | destination = "/share/dbus-1/services/org.freedesktop.secrets.service"; | ||
| 20 | text = '' | ||
| 21 | [D-BUS Service] | 15 | [D-BUS Service] |
| 22 | Name=org.freedesktop.secrets | 16 | Name=org.freedesktop.secrets |
| 23 | Exec=${lib.getExe' pkgs.coreutils "false"} | 17 | Exec=${lib.getExe' pkgs.coreutils "false"} |
| 24 | SystemdService=keepassxc.service | 18 | SystemdService=keepassxc.service |
| 25 | ''; | 19 | ''; |
| 26 | }) | 20 | "dbus-1/services/org.kde.kwalletd6.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd6.service"; |
| 27 | ]; | 21 | "dbus-1/services/org.kde.kwalletd5.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd5.service"; |
| 28 | }; | 22 | }; |
| 29 | in { | ||
| 30 | config = { | ||
| 31 | home.packages = [ | ||
| 32 | wrappedKeepassxc | ||
| 33 | ]; | ||
| 34 | 23 | ||
| 35 | xdg.dataFile = { | 24 | home.persistence."/persistent" = { |
| 36 | "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; | 25 | directories = [ |
| 37 | "dbus-1/services/org.freedesktop.secrets.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service"; | 26 | ".config/keepassxc" |
| 38 | "dbus-1/services/org.kde.kwalletd6.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd6.service"; | 27 | ]; |
| 39 | "dbus-1/services/org.kde.kwalletd5.service".source = "${pkgs.kdePackages.kwallet}/share/dbus-1/services/org.kde.kwalletd5.service"; | 28 | files = [ |
| 40 | }; | 29 | "store.kdbx" |
| 30 | ]; | ||
| 31 | }; | ||
| 41 | 32 | ||
| 42 | home.persistence."/persistent" = { | 33 | services.gnome-keyring.enable = lib.mkForce false; |
| 43 | directories = [ | ||
| 44 | ".config/keepassxc" | ||
| 45 | ]; | ||
| 46 | files = [ | ||
| 47 | "store.kdbx" | ||
| 48 | ]; | ||
| 49 | }; | ||
| 50 | 34 | ||
| 51 | services.gnome-keyring.enable = lib.mkForce false; | 35 | systemd.user.services.keepassxc = { |
| 36 | Service = { | ||
| 37 | Type = "dbus"; | ||
| 38 | BusName = "org.keepassxc.KeePassXC.MainWindow"; | ||
| 39 | WorkingDirectory = "~"; | ||
| 40 | ExecStart = lib.getExe pkgs.keepassxc; | ||
| 41 | Environment = [ "QT_QPA_PLATFORM=wayland" ]; | ||
| 42 | }; | ||
| 43 | Unit = { | ||
| 44 | After = [ "graphical-session.target" ]; | ||
| 45 | BindsTo = [ "graphical-session.target" ]; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | }; | ||
| 52 | }; | 49 | }; |
| 53 | } | 50 | } |
