refactor: move GPG defaults to :config default

Assuming GPG is present and set up by default can be surprising for
beginners, so this commit makes GPG integration opt-in, behind a new
+gnupg flag in the :config default module. There'll be more added to
this later.
This commit is contained in:
Henrik Lissner
2024-12-03 18:01:46 -05:00
parent ea616ebd5b
commit c788769469
3 changed files with 33 additions and 29 deletions

View File

@ -590,12 +590,6 @@ uses a straight or package.el command directly).")
;; config (e.g. ~/.doom.d/). ;; config (e.g. ~/.doom.d/).
(setq custom-file (file-name-concat doom-user-dir "custom.el")) (setq custom-file (file-name-concat doom-user-dir "custom.el"))
;; By default, Emacs stores `authinfo' in $HOME and in plain-text. Let's not do
;; that, mkay? This file stores usernames, passwords, and other treasures for
;; the aspiring malicious third party. You'll need a GPG setup though.
(setq auth-sources (list (file-name-concat doom-profile-state-dir "authinfo.gpg")
"~/.authinfo.gpg"))
(define-advice en/disable-command (:around (fn &rest args) write-to-data-dir) (define-advice en/disable-command (:around (fn &rest args) write-to-data-dir)
"Save safe-local-variables to `custom-file' instead of `user-init-file'. "Save safe-local-variables to `custom-file' instead of `user-init-file'.

View File

@ -20,6 +20,9 @@ This module provides a set of reasonable defaults, including:
** Module flags ** Module flags
- +bindings :: ... - +bindings :: ...
- +gnupg ::
Enable GnuPG integration and defaults, allowing Emacs to pick up on your
default GPG keys, including interop with pinentry-emacs.
- +smartparens :: ... - +smartparens :: ...
** Packages ** Packages

View File

@ -31,9 +31,16 @@
avy-single-candidate-jump nil) avy-single-candidate-jump nil)
(when (modulep! +gnupg)
;; By default, Emacs stores `authinfo' in $HOME and in plain-text. Let's not
;; do that, mkay? This file stores usernames, passwords, and other treasures
;; for the aspiring malicious third party. You'll need a GPG setup though.
(setq auth-sources (list (file-name-concat doom-profile-state-dir "authinfo.gpg")
"~/.authinfo.gpg"))
(after! epa (after! epa
;; With GPG 2.1+, this forces gpg-agent to use the Emacs minibuffer to prompt ;; With GPG 2.1+, this forces gpg-agent to use the Emacs minibuffer to
;; for the key passphrase. ;; prompt for the key passphrase.
(set 'epg-pinentry-mode 'loopback) (set 'epg-pinentry-mode 'loopback)
;; Default to the first enabled and non-expired key in your keyring. ;; Default to the first enabled and non-expired key in your keyring.
(setq-default (setq-default
@ -53,7 +60,7 @@
(defadvice! +default--dont-prompt-for-keys-a (&rest _) (defadvice! +default--dont-prompt-for-keys-a (&rest _)
:before #'epa-file-write-region :before #'epa-file-write-region
(unless (local-variable-p 'epa-file-encrypt-to) (unless (local-variable-p 'epa-file-encrypt-to)
(setq-local epa-file-encrypt-to (default-value 'epa-file-encrypt-to))))) (setq-local epa-file-encrypt-to (default-value 'epa-file-encrypt-to))))))
(after! woman (after! woman