From 2623df1e00ea46713bf0c0a9e8c330a4e377d54d Mon Sep 17 00:00:00 2001
From: outfoxxed <outfoxxed@outfoxxed.me>
Date: Fri, 28 Feb 2025 16:53:28 -0800
Subject: [PATCH] switch from bitwarden to keepassxc

---
 modules/system.nix                         |  1 -
 modules/user/general.nix                   |  3 ++-
 modules/user/modules/firefox/default.nix   |  6 +++---
 modules/user/modules/keepassxc/default.nix | 16 ++++++++++++++++
 4 files changed, 21 insertions(+), 5 deletions(-)
 create mode 100644 modules/user/modules/keepassxc/default.nix

diff --git a/modules/system.nix b/modules/system.nix
index 98fbb32..7eb20c4 100644
--- a/modules/system.nix
+++ b/modules/system.nix
@@ -72,7 +72,6 @@
 
   programs.gnupg.agent = {
     enable = true;
-    enableSSHSupport = true;
     enableExtraSocket = true;
   };
 }
diff --git a/modules/user/general.nix b/modules/user/general.nix
index 196d820..b4f18f0 100644
--- a/modules/user/general.nix
+++ b/modules/user/general.nix
@@ -38,6 +38,7 @@
   programs.ssh = {
     enableAskPassword = true;
     askPassword = lib.getExe pkgs.lxqt.lxqt-openssh-askpass;
+    startAgent = true;
   };
 
   systemd = {
@@ -103,6 +104,7 @@
       ./modules/dolphin
       ./modules/firefox
       ./modules/element.nix
+      ./modules/keepassxc
       ./dev-support.nix
     ];
 
@@ -117,7 +119,6 @@
       curl
       cantata
       logseq
-      bitwarden
       lxqt.pavucontrol-qt
       helvum
       htop
diff --git a/modules/user/modules/firefox/default.nix b/modules/user/modules/firefox/default.nix
index 0120f51..49f22e2 100755
--- a/modules/user/modules/firefox/default.nix
+++ b/modules/user/modules/firefox/default.nix
@@ -220,7 +220,7 @@ in {
         settings = modules.general;
 
         extensions = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
-          bitwarden
+          keepassxc-browser
           darkreader
           github-reposize
           sidebery
@@ -251,7 +251,7 @@ in {
         settings = modules.trusted;
 
         extensions = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
-          bitwarden
+          keepassxc-browser
           darkreader
           github-reposize
           sidebery
@@ -268,7 +268,7 @@ in {
         settings = modules.trusted;
 
         extensions = with pkgs.nur.repos.rycee.firefox-addons; with extra-addons; [
-          bitwarden
+          keepassxc-browser
           darkreader
           github-reposize
           sidebery
diff --git a/modules/user/modules/keepassxc/default.nix b/modules/user/modules/keepassxc/default.nix
new file mode 100644
index 0000000..e394856
--- /dev/null
+++ b/modules/user/modules/keepassxc/default.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs, ... }: let
+  keepassxc = pkgs.keepassxc.overrideAttrs (prev: {
+    patches = prev.patches ++ [
+      (pkgs.fetchpatch {
+        url = "https://patch-diff.githubusercontent.com/raw/keepassxreboot/keepassxc/pull/11692.patch";
+        sha256 = "S/Oy4dAxER2NkoJQYAdsz5rphn5SW2TH50F//5Xmf+Y=";
+      })
+      (pkgs.fetchpatch {
+        url = "https://patch-diff.githubusercontent.com/raw/keepassxreboot/keepassxc/pull/11693.patch";
+        sha256 = "VveqhLfcw2WyYsD+3jTaqKp4d1EYX8pPL++hyGpsz1w=";
+      })
+    ];
+  });
+in {
+  home.packages = [ keepassxc ];
+}