From 6607c27f9c0aea1973d3b1ba983717f47c358752 Mon Sep 17 00:00:00 2001 From: Dennis Date: Mon, 15 Sep 2025 21:36:14 +0200 Subject: [PATCH] adds helpers and packages for pinentry --- hosts/dnsc-air/default.nix | 2 ++ modules/fish/default.nix | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/hosts/dnsc-air/default.nix b/hosts/dnsc-air/default.nix index dfa589b..81bbe61 100644 --- a/hosts/dnsc-air/default.nix +++ b/hosts/dnsc-air/default.nix @@ -102,6 +102,8 @@ "openjph" "p11-kit" "mas" + "gpg" + "pinentry-mac" "go" { name = "emacs-plus"; diff --git a/modules/fish/default.nix b/modules/fish/default.nix index 664dff6..394efde 100644 --- a/modules/fish/default.nix +++ b/modules/fish/default.nix @@ -52,6 +52,29 @@ vterm_printf = '' printf "\e]%s\e\\" "$argv" ''; + setup_gpg = '' + set -x GPG_TTY (tty) + + if not test -d $HOME/.gnupg + mkdir -p $HOME/.gnupg + chmod 700 $HOME/.gnupg + end + + set pinentry_line "pinentry-program "(which pinentry-mac) + if test -f $HOME/.gnupg/gpg-agent.conf + if not grep -Fxq $pinentry_line $HOME/.gnupg/gpg-agent.conf + echo $pinentry_line >> $HOME/.gnupg/gpg-agent.conf + end + else + echo $pinentry_line > $HOME/.gnupg/gpg-agent.conf + end + + if pgrep gpg-agent > /dev/null + killall gpg-agent + end + + echo "gpg + pinentry-mac installed and configured." + ''; }; interactiveShellInit = '' @@ -60,6 +83,8 @@ set hn (prompt_hostname) set fish_cursor_default block blink + set -x GPG_TTY (tty) + if test "$INSIDE_EMACS" != "vterm" set fish_cursor_insert line blink set fish_cursor_replace_one underscore blink