diff options
author | Vincent Ambo <mail@tazj.in> | 2018-06-06T07·46+0200 |
---|---|---|
committer | Vincent Ambo <mail@tazj.in> | 2018-06-06T07·46+0200 |
commit | 66e86d2546c8abdc22cc7333e85e50eef3408c3d (patch) | |
tree | 8364fee63c818f159ddb117e15eb1e8b13f73ddf /init/functions.el | |
parent | be8d47257f1fa60e63e4ea6e76502011067a515d (diff) |
feat(functions): Add custom ivy-password-store function
The default `ivy-pass` function shells out to `pass` in such a way that using pinentry with emacs doesn't work, causing EXWM to freeze until `C-g` is hit, after which the password entry buffer pops up. That was very inconvenient - however, the new auth-source integration with pass works correctly and this commit introduces a new function and bindings for using the same functionality as before but doing the actual password-reading via auth-source.
Diffstat (limited to 'init/functions.el')
-rw-r--r-- | init/functions.el | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/init/functions.el b/init/functions.el index 07411396b27d..5ed9a06fd6fb 100644 --- a/init/functions.el +++ b/init/functions.el @@ -170,4 +170,24 @@ Including indent-buffer, which should not be called automatically on save." (when (string= event "finished\n") (message "%s process finished." process)))))))) +(defun ivy-password-store (&optional password-store-dir) + "Custom version of password-store integration with ivy that + actually uses the GPG agent correctly." + + (interactive) + (ivy-read "Copy password of entry: " + (password-store-list (or password-store-dir (password-store-dir))) + :require-match t + :keymap ivy-pass-map + :action (lambda (entry) + (let ((password (auth-source-pass-get 'secret entry))) + (password-store-clear) + (kill-new password) + (setq password-store-kill-ring-pointer kill-ring-yank-pointer) + (message "Copied %s to the kill ring. Will clear in %s seconds." + entry (password-store-timeout)) + (setq password-store-timeout-timer + (run-at-time (password-store-timeout) + nil 'password-store-clear)))))) + (provide 'functions) |