Subject: 25.0.50; GPG uses GUI dialog box to ask for passphrase

From: Mark Karpov <[email-masked]>
Date: Sat, 04 Jul 2015 23:39:14 +0600

***

My .authinfo.gpg file is encrypted with GPG. Emacs is smart enough to
invoke GPG for me when I want to see contents of the file or when I use
GNUS to read my emails.

However, GPG uses graphical dialog box to ask for passphrase. This
destroys Emacs user experience, because I cannot cancel it with C-g, I
cannot finish input with C-m or C-j. I need to use RET, which I usually
use for completely different purposes (because we have C-m and C-j
alternatives and return is relatively easy to reach). Other editing
functionality is unavailable. Last time I tried it in terminal the
dialog box barely worked (some keys pressing were not registered for
example). Simply put, GUI dialog boxes is not something I like in Emacs.

Now, I don't know if it's possible, it's probably GPG-side thing, but
could it be done in minibuffer (like sudo in shell and Emacs shell),
then somehow passed to GPG?

Thanks.

***

In GNU Emacs 25.0.50.13 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.4)
 of 2015-06-27 on arch
Repository revision: ff80437668dd0d5163c9e43f0c200b923b39166b
Windowing system distributor `The X.Org Foundation', version 11.0.11702000
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: M

Minor modes in effect:
  global-git-commit-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  flyspell-mode: t
  whitespace-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  show-paren-mode: t
  minibuffer-electric-default-mode: t
  ido-vertical-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  global-auto-revert-mode: t
  global-aggressive-indent-mode: t
  display-time-mode: t
  delete-selection-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: do-auto-fill
  transient-mark-mode: t
  auto-fill-mode: 1

Recent messages:
Wrote /home/mark/.emacs.d/.git/COMMIT_EDITMSG
Git finished [2 times]
Reverting (up to) 2 file-visiting buffer(s)...
(No buffers need to be reverted)
Type C-h i to view popup manual, ? to describe an argument or action.
Running git push -v origin master:refs/heads/master [2 times]
Git finished
Type C-h i to view popup manual, ? to describe an argument or action.
Type "q" in help window to restore its previous buffer.
C-h C-' is undefined

Load-path shadows:
None found.

Features:
(shadow sort mail-extr ace-window linum magit-blame magit-stash
magit-bisect magit-remote magit-commit magit-sequence magit magit-log
magit-apply magit-wip magit-diff smerge-mode magit-core magit-process
magit-popup magit-mode magit-git crm magit-section magit-utils
git-commit log-edit pcvs-util add-log with-editor tramp-sh tramp
tramp-compat tramp-loaddefs trampver shell pcomplete emacsbug sendmail
markdown-mode vc vc-dispatcher vc-git diff-mode smex hl-line nndraft
nnmh nnfolder utf-7 epa-file epa derived epg gnutls network-stream nsm
auth-source starttls gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime
password-cache dig mailcap nntp gnus-cache gnus-sum gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source tls utf7 netrc nnoo
parse-time gnus-spec gnus-int gnus-range message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
gnus-ems nnheader gnus-util mail-utils mm-util help-fns mail-prsvr
wid-edit rainbow-delimiters flycheck-haskell haskell-cabal haskell-utils
flycheck find-func rx subr-x flyspell ispell whitespace mk-visual
solarized-dark-theme solarized mk-texinfo mk-tex mk-scheme mk-python
mk-prolog mk-org mk-markdown mk-man mk-magit mk-lisp slime-fancy
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime
compile etags xref eieio eieio-core arc-mode archive-mode noutline
outline pp comint ansi-color ring hyperspec browse-url slime-autoloads
mk-ibuffer mk-haskell mk-gnus mk-eshell mk-erc mk-elisp mk-dired mk-diff
mk-clojure mk-calendar mk-c mk-bookmark mk-minor-modes
common-lisp-snippets yasnippet help-mode cl whole-line-or-region paren
minibuf-eldef ido-vertical-mode ido-ubiquitous ido-completing-read+
cl-macs gv ido autorevert filenotify cl-seq aggressive-indent easy-mmode
time delsel smartparens-config smartparens byte-opt thingatpt mk-global
edmacro kmacro ace-link avy mk-utils f dash s ucs-normalize mk-abbrev
misc server finder-inf tex-site fix-word advice info easymenu bytecomp
byte-compile cl-extra seq cl-loaddefs pcase cl-lib cconv package
epg-config time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind gfilenotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 513899 74790)
 (symbols 48 48032 0)
 (miscs 40 1906 1422)
 (strings 32 105349 59509)
 (string-bytes 1 3157922)
 (vectors 16 72892)
 (vector-slots 8 1898462 176041)
 (floats 8 614 772)
 (intervals 56 2639 708)
 (buffers 976 29)
 (heap 1024 55248 6145))