Added pass contrib layer that repescts dotspacemacs-use-ido and

describes multiline pass entries.
This commit is contained in:
Andrew Oppenlander 2015-10-12 22:29:55 -04:00 committed by syl20bnr
parent ff43db919b
commit 3dd9fc5d4e
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,25 @@
#+TITLE Pass contribution layer for Spacemacs
* Table of Contents
- [[#description][Description]]
- [[#key-bindings][Key Bindings]]
* Description
This layer adds intregration with [[http://www.passwordstore.org/][pass]], the standard unix password manager.
You must have ~pass~ installed for this layer to function properly.
* Key Bindings
| Key Bindings | Description |
|--------------+----------------------------------------------------------------------|
| ~SPC P s y~ | copy password (~password-store-copy~) |
| ~SPC P s Y~ | copy and describe password (~pass/password-store-copy-and-describe~) |
| ~SPC P s ?~ | describe password (~pass/password-store-describe~) |
| ~SPC P s g~ | generate new password (~password-store-generate~) |
| ~SPC P s i~ | insert new password (~password-store-insert~) |
| ~SPC P s c~ | edit password (~password-store-edit~) |
| ~SPC P s r~ | rename password (~password-store-rename~) |
| ~SPC P s d~ | remove from password store (~password-store-remove~) |
| ~SPC P s D~ | clear the password store (~password-store-clear~) |
| ~SPC P s I~ | initialize the password store (~password-store-init~) |
| ~SPC P s w~ | open url (~password-store-url~) |

View File

@ -0,0 +1,52 @@
;; ;;; packages.el --- pass Layer packages File for Spacemacs
;; ;;
;; ;; Copyright (c) 2012-2014 Sylvain Benner
;; ;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;; ;;
;; ;; Author: Andrew Oppenlander <andrew.oppenlander@gmail.com>
;; ;; URL: https://github.com/syl20bnr/spacemacs
;; ;;
;; ;; This file is not part of GNU Emacs.
;; ;;
;; ;;; License: GPLv3
(setq pass-packages '(password-store))
(defun pass/init-password-store ()
(use-package password-store
:defer t
:init
(evil-leader/set-key
"Psy" 'password-store-copy
"Psg" 'password-store-generate
"Psi" 'password-store-insert
"Psc" 'password-store-edit
"Psr" 'password-store-rename
"Psd" 'password-store-remove
"PsD" 'password-store-clear
"PsI" 'password-store-init
"Psw" 'password-store-url
"Ps?" 'pass/password-store-describe
"PsY" 'pass/password-store-copy-and-describe)
:config
(progn
(defun password-store--completing-read ()
"Read a password entry in the minibuffer, with completion.
This method is overridden to allow use of the dotspacemacs-use-ido variable."
(if dotspacemacs-use-ido
(ido-completing-read "Password entry: " (password-store-list))
(helm-comp-read "Password entry: " (password-store-list))))
(defun pass/password-store-copy-and-describe (entry)
"Copy the password to the clipboard, and show the multiline description for ENTRY"
(interactive (list (password-store--completing-read)))
(password-store-copy entry)
(pass/password-store-describe entry))
(defun pass/password-store-describe (entry)
"Show the multiline description for ENTRY"
(interactive (list (password-store--completing-read)))
(let ((description (s-join "\n" (cdr (s-lines (password-store--run-show entry))))))
(message "%s" description)))
)))