summaryrefslogtreecommitdiff
path: root/accounts/gkleen@skadhi/keepassxc.nix
blob: c399450d6ea1ef70325cb912c494508239954ef6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{ pkgs, lib, ... }:
{
  config = {
    environment.systemPackages = [ pkgs.keepassxc ];

    home-manager.users.gkleen = { ... }: {
      xdg.dataFile = {
        "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
        '';
        "dbus-1/services/org.freedesktop.secrets.service".text = ''
          [D-BUS Service]
          Name=org.freedesktop.secrets
          Exec=${lib.getExe' pkgs.coreutils "false"}
          SystemdService=keepassxc.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;

      systemd.user.services.keepassxc = {
        Service = {
          Type = "dbus";
          BusName = "org.keepassxc.KeePassXC.MainWindow";
          WorkingDirectory = "~";
          ExecStart = lib.getExe pkgs.keepassxc;
          Environment = [ "QT_QPA_PLATFORM=wayland" ];
        };
        Unit = {
          After = [ "graphical-session.target" ];
          BindsTo = [ "graphical-session.target" ];
        };
      };
    };
  };
}