diff options
| -rw-r--r-- | meta/base.txt | 1 | ||||
| -rw-r--r-- | nix/flake.nix | 4 | ||||
| -rw-r--r-- | nix/host.nix | 58 | ||||
| -rw-r--r-- | systemd-units/user.txt | 5 |
4 files changed, 68 insertions, 0 deletions
diff --git a/meta/base.txt b/meta/base.txt index b468783..6a12a4a 100644 --- a/meta/base.txt +++ b/meta/base.txt @@ -5,6 +5,7 @@ base btrfs-progs cpupower dosfstools +fuse2 fwupd iwd kernel-modules-hook diff --git a/nix/flake.nix b/nix/flake.nix index 359509b..834e213 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -56,6 +56,10 @@ "claude-code" "github-copilot-cli" ]; + config.permittedInsecurePackages = [ + # Keybase requires an EOL Electron release for desktop notifications. + "keybase-gui-6.5.1" + ]; }; mkProfile = diff --git a/nix/host.nix b/nix/host.nix index f968b9b..588d635 100644 --- a/nix/host.nix +++ b/nix/host.nix @@ -79,6 +79,9 @@ in # ── Mail: ProtonMail Bridge ─────────────────────────────────────────────── protonmail-bridge + # ── Keybase ────────────────────────────────────────────────────────────── + keybase-gui + # ── Secrets portal ──────────────────────────────────────────────────────── pass-secret-service-rust @@ -141,4 +144,59 @@ in disable-ccid pcsc-driver /usr/lib/libpcsclite.so.1 ''; + + # ── Keybase ──────────────────────────────────────────────────────────────── + services.keybase.enable = true; + services.kbfs.enable = true; + + # Home Manager assumes the NixOS FUSE wrapper. Arch provides fusermount + # through fuse2 in /usr/bin. + systemd.user.services.kbfs.Service = { + Environment = lib.mkForce [ + "PATH=/usr/bin:${ + lib.makeBinPath [ + pkgs.keybase + pkgs.kbfs + ] + }" + "KEYBASE_SYSTEMD=1" + ]; + ExecStartPre = lib.mkForce "${pkgs.coreutils}/bin/mkdir -p %t/keybase/kbfs"; + ExecStart = lib.mkForce "${lib.getExe' pkgs.kbfs "kbfsfuse"} %t/keybase/kbfs"; + ExecStopPost = lib.mkForce "/usr/bin/fusermount -u %t/keybase/kbfs"; + }; + + systemd.user.services.keybase-gui = { + Unit = { + Description = "Keybase GUI"; + Requires = [ + "keybase.service" + "kbfs.service" + ]; + After = [ + "graphical-session.target" + "keybase.service" + "kbfs.service" + ]; + PartOf = [ "graphical-session.target" ]; + ConditionEnvironment = "WAYLAND_DISPLAY"; + }; + Service = { + Environment = [ + "KEYBASE_AUTOSTART=1" + "NIXOS_OZONE_WL=1" + "PATH=${ + lib.makeBinPath [ + pkgs.keybase + pkgs.gnugrep + pkgs.xdg-utils + ] + }:/usr/bin" + ]; + ExecStart = lib.getExe pkgs.keybase-gui; + Restart = "on-failure"; + RestartSec = 5; + }; + Install.WantedBy = [ "sway-session.target" ]; + }; } diff --git a/systemd-units/user.txt b/systemd-units/user.txt index 076a265..560b68f 100644 --- a/systemd-units/user.txt +++ b/systemd-units/user.txt @@ -7,6 +7,7 @@ cliphist-image.service cliphist-text.service display-watcher.service inhibridge.service +keybase-gui.service mako.service pass-secret-service.service poweralertd.service @@ -16,5 +17,9 @@ swayrd.service waybar.service wob.service +# --- keybase --- +keybase.service +kbfs.service + # --- mail --- protonmail-bridge.service |
