Figure out how to enable using Wisteria over SSH and other headless environments

Right now, wisteria can't use non-graphical GPG pinentry programs to accept a passphrase because the tcell library that we use for our UI doesn't implement suspend/resume of control over the TTY. There's this GitHub issue tracking the problem, but I don't know how likely it is to be implemented anytime soon.

Workarounds include:

  • starting/stopping the entire wisteria TUI each time we start writing a new message and need to sign it. We'd need to use the workaround described in the bug to avoid dropping a key event.
  • requiring that such options use tmux/screen to edit their messages and find a way to prompt for pinentry within a different tmux pane (or similar)
  • Implement GPG decryption and signing as part of wisteria instead of using the external gpg binary to do it. This requires having our code actually handle private keys and passphrases, which we've managed to avoid up until now. If we did this, we would have control over how the passphrase is provided though.


Assigned to
9 months ago
9 months ago
feature wisteria