Today I upgraded to Beta 5 of macOS 10.12.4 and discovered that it breaks commit signing in tmux. If you’re using pinetry-mac and if you have commit.gpgsign set to true in your git config, then every time you make a commit, pinentry-mac is supposed to auto-supply the GPG passphrase from your keychain.1 What happens however with Beta 5 is that pinetry-mac doesn’t work specifically in tmux. It works in Terminal and iTerm just fine, but if you try to use tmux in either of those programs, it doesn’t work.

What are your options? You have a few.

First, you could revert using Beta 5 and go back to the latest stable version of macOS. I’m not going to do this because Night Shift on macOS beta has become indispensable for me. I use it 24x7.

The second option is that you could quit using tmux, but tmux is a must for me. This is a non-option.

The third option is that you could quit using pinetry-mac and just supply the password everytime. To do this, just modify the ~/.gnupg/gpg.conf file by removing this line:

no-tty

This would get laborious though, having to manually paste in the GPG passphrase every time.

The fourth option, the one I’m going with for now, is just disabling commit signing for now. Commit signing is very cool and I like the green “Verified” badge that comes with it, but it’s not a huge loss to no longer have this. Disabling commit signing is as easy as running this:

git config --global commit.gpgsign false

Update: here’s the fix.

  1. Of course, you have to supply your GPG passphrase to pinentry’s dialog window the first time you’re setting this up. ↩︎