diff options
| author | sommerfeld <sommerfeld@sommerfeld.dev> | 2026-09-17 15:05:35 +0100 |
|---|---|---|
| committer | sommerfeld <sommerfeld@sommerfeld.dev> | 2026-09-17 15:05:35 +0100 |
| commit | 4bf8505b1e9d5351de865f3a01cd4f923bb41902 (patch) | |
| tree | 7a0ba67d0e5bdee62ac3d487f61dde8817d7aa7d /nix | |
| parent | b929ff14bfd83153a8da56b229b79fe7c214aa02 (diff) | |
| download | dotfiles-4bf8505b1e9d5351de865f3a01cd4f923bb41902.tar.gz dotfiles-4bf8505b1e9d5351de865f3a01cd4f923bb41902.tar.bz2 dotfiles-4bf8505b1e9d5351de865f3a01cd4f923bb41902.zip | |
Run Keybase desktop services through Home Manager
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/flake.nix | 4 | ||||
| -rw-r--r-- | nix/host.nix | 58 |
2 files changed, 62 insertions, 0 deletions
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" ]; + }; } |
