summaryrefslogtreecommitdiff
path: root/accounts/gkleen@skadhi/keepassxc.nix
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/gkleen@skadhi/keepassxc.nix')
-rw-r--r--accounts/gkleen@skadhi/keepassxc.nix71
1 files changed, 34 insertions, 37 deletions
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, ... }:
2let 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 };
29in {
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}