From ec7d5bbea562f42bcb6d3453bad0d6131944f640 Mon Sep 17 00:00:00 2001 From: Taylor Silenzio Date: Mon, 9 Mar 2026 10:34:17 -0600 Subject: [PATCH 1/3] fix(gpg): disable passphrase caching and set GPG_TTY - Set cache TTLs to 0 so Touch ID prompts on every signing operation - Add GPG_TTY export to zshrc so pinentry-touchid can find the terminal --- config/gnupg/gpg-agent.conf | 7 +++---- config/zsh/zshrc | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/gnupg/gpg-agent.conf b/config/gnupg/gpg-agent.conf index 65caef3..6bea500 100644 --- a/config/gnupg/gpg-agent.conf +++ b/config/gnupg/gpg-agent.conf @@ -1,7 +1,6 @@ -# Cache passphrase for 10 minutes (600 seconds) -default-cache-ttl 600 -# Maximum cache lifetime of 2 hours (7200 seconds) -max-cache-ttl 7200 +# Require Touch ID for every signing operation +default-cache-ttl 0 +max-cache-ttl 0 # Pinentry program options (uncomment one): diff --git a/config/zsh/zshrc b/config/zsh/zshrc index f4a166e..bfe298b 100644 --- a/config/zsh/zshrc +++ b/config/zsh/zshrc @@ -11,6 +11,7 @@ fi # Environment Variables # ============================================================================ export COPYFILE_DISABLE=1 # Don't create ._* files on macOS +export GPG_TTY=$(tty) # Required for pinentry-touchid # ============================================================================ # PATH Configuration From 0194041732388200ed912bfcb28dec385bac287a Mon Sep 17 00:00:00 2001 From: Taylor Silenzio Date: Mon, 9 Mar 2026 13:52:44 -0600 Subject: [PATCH 2/3] feat(test): add manifest support to test bundle - Add test bundle manifest with minimal symlinks for VM testing - Update setup.sh to use apply_manifest with legacy fallback --- platforms/macos/bundles/test/manifest | 12 ++++++++++++ platforms/macos/bundles/test/setup.sh | 21 ++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 platforms/macos/bundles/test/manifest diff --git a/platforms/macos/bundles/test/manifest b/platforms/macos/bundles/test/manifest new file mode 100644 index 0000000..36273cc --- /dev/null +++ b/platforms/macos/bundles/test/manifest @@ -0,0 +1,12 @@ +# Minimal symlinks for VM testing +zsh/zshrc -> $HOME/.zshrc +zsh/zshenv -> $HOME/.zshenv +zsh/zprofile -> $HOME/.zprofile + +# Git +git/gitconfig -> $HOME/.gitconfig +git/gitignore -> $HOME/.gitignore + +# GnuPG +gnupg/gpg-agent.conf -> $HOME/.gnupg/gpg-agent.conf +@chmod 700 $HOME/.gnupg diff --git a/platforms/macos/bundles/test/setup.sh b/platforms/macos/bundles/test/setup.sh index d39c199..8e8b4cb 100755 --- a/platforms/macos/bundles/test/setup.sh +++ b/platforms/macos/bundles/test/setup.sh @@ -28,15 +28,18 @@ echo "Configuring minimal symlinks..." ensure_config_dirs -# Only essential symlinks (subset of link_base_configs) -CONFIG_DIR="$DOTFILES_DIR/config" - -[[ -f "$CONFIG_DIR/zsh/zshrc" ]] && safe_link "$CONFIG_DIR/zsh/zshrc" "$HOME/.zshrc" -[[ -f "$CONFIG_DIR/zsh/zshenv" ]] && safe_link "$CONFIG_DIR/zsh/zshenv" "$HOME/.zshenv" -[[ -f "$CONFIG_DIR/zsh/zprofile" ]] && safe_link "$CONFIG_DIR/zsh/zprofile" "$HOME/.zprofile" -[[ -f "$CONFIG_DIR/git/gitconfig" ]] && safe_link "$CONFIG_DIR/git/gitconfig" "$HOME/.gitconfig" -[[ -f "$CONFIG_DIR/git/gitignore" ]] && safe_link "$CONFIG_DIR/git/gitignore" "$HOME/.gitignore" -[[ -f "$CONFIG_DIR/gnupg/gpg-agent.conf" ]] && safe_link "$CONFIG_DIR/gnupg/gpg-agent.conf" "$HOME/.gnupg/gpg-agent.conf" +if [[ -f "$BUNDLE_DIR/manifest" ]]; then + apply_manifest "$BUNDLE_DIR/manifest" "$DOTFILES_DIR/config" +else + # Legacy fallback + CONFIG_DIR="$DOTFILES_DIR/config" + [[ -f "$CONFIG_DIR/zsh/zshrc" ]] && safe_link "$CONFIG_DIR/zsh/zshrc" "$HOME/.zshrc" + [[ -f "$CONFIG_DIR/zsh/zshenv" ]] && safe_link "$CONFIG_DIR/zsh/zshenv" "$HOME/.zshenv" + [[ -f "$CONFIG_DIR/zsh/zprofile" ]] && safe_link "$CONFIG_DIR/zsh/zprofile" "$HOME/.zprofile" + [[ -f "$CONFIG_DIR/git/gitconfig" ]] && safe_link "$CONFIG_DIR/git/gitconfig" "$HOME/.gitconfig" + [[ -f "$CONFIG_DIR/git/gitignore" ]] && safe_link "$CONFIG_DIR/git/gitignore" "$HOME/.gitignore" + [[ -f "$CONFIG_DIR/gnupg/gpg-agent.conf" ]] && safe_link "$CONFIG_DIR/gnupg/gpg-agent.conf" "$HOME/.gnupg/gpg-agent.conf" +fi echo "" echo "Test setup complete!" From e19c5489a5dfa63775b58532d29988c5c9f5a2f8 Mon Sep 17 00:00:00 2001 From: Taylor Silenzio Date: Mon, 9 Mar 2026 17:21:08 -0600 Subject: [PATCH 3/3] docs(readme): add Atuin to features list and update directory tree - Add Atuin shell history sync to What's Included - Add config/atuin/ and platforms/macos/daemons/ to structure --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index f67d180..6b1dec9 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ git clone https://github.com/tsilenzio/dotfiles.git ~/.dotfiles ## What's Included - **Zsh** configuration with Starship prompt +- **Atuin** shell history sync with E2E encryption - **Git** config with delta diffs and GPG signing - **Ghostty** terminal configuration (with WezTerm fallback) - **Homebrew** packages organized by bundle @@ -72,6 +73,7 @@ just secrets ... # Secrets management (init, backup, restore) ~/.dotfiles/ ├── config/ # Base configurations │ ├── manifest # Declares what gets linked where +│ ├── atuin/ │ ├── ghostty/ │ ├── git/ │ ├── gnupg/ @@ -94,6 +96,7 @@ just secrets ... # Secrets management (init, backup, restore) │ │ ├── personal/ │ │ ├── work/ │ │ └── test/ +│ ├── daemons/ # Launch daemons/agents (spotlight) │ ├── install # macOS platform installer │ ├── preflight # Sudo caching / preflight checks │ ├── preferences # macOS system preferences