dotfiles/gopass
Marty Oehme 3f958a65d6 [gopass] Add rofi-gopass menu for quick secret entry
Allows auto-filling and copying secrets to the clipboard. Works on the secrets themselves and any fields contained within the secrets. Key bindings and options can be configured through a file or the environment.
2020-05-16 15:19:08 +00:00
..
.config/gopass [gopass] Add rofi-gopass menu for quick secret entry 2020-05-16 15:19:08 +00:00
.local/bin [gopass] Add rofi-gopass menu for quick secret entry 2020-05-16 15:19:08 +00:00
README.md [gopass] Add rofi-gopass menu for quick secret entry 2020-05-16 15:19:08 +00:00

gopass

gopass - command-line password manager, pass compatible, git by default

The gopass module tries to make interacting with the basic necessities of gopass painless and quick -- it is focused on accessing secrets, and quickly auto-filling forms or copying secrets to the clipboard. It relies on the default gopass auto-deleting clipping, so your secrets are automatically removed after a short while.

The configuration of gopass is relatively standard, it tries to follow XDG_specifications, putting the default pass store into ~/.local/share/gopass/passwords.

rofi-gopass

To make accessing secrets easy, it uses the rofi-gopass script, which creates a small rofi menu displaying all your secrets (names only), and from which you have quick access to copy, fill, or open the individual entries. An example of the menu in action:

rofi-gopass demonstration

There are several keybindings available, to either fill or copy to clipboard the username, password, or open the full view to an individual entry. For every send to clipboard action, the clipboard will be automatically cleared after the time specified in your gopass settings. For auto-filling to work correctly, the username field will (by default) have to be highlighted.

keybinding function setting name
Return Auto-fill username & password KEY_AUTOFILL
Alt+Return Open individual entry KEY_OPEN_ENTRY
Alt+u Auto-fill username KEY_FILL_USER
Alt+p Auto-fill password KEY_FILL_PASS
Ctrl+Alt+u Send username to clipboard KEY_CLIP_USER
Ctrl+Alt+p Send password to clipboard KEY_CLIP_PASS
Return Auto-fill selected field (from opened entry) KEY_ENTRYMENU_FILL
Alt+Return Send selected field to clipboard (from opened entry) KEY_ENTRYMENU_CLIP
Alt+BackSpace Close individual entry, return to overview KEY_ENTRYMENU_QUIT

These keys, as well as the additional configuration can be changed by setting the corresponding environment variable, through a configuration file, or at the top of the script file itself. The script tries to follow xdg-specification, meaning it looks for a configuration file in the following directories (in descending order):

  • XDG_CONFIG_HOME/rofi-gopass/rofi-gopass.conf
  • ~/.config/rofi-gopass/rofi-gopass.conf
  • ~/.rofi-gopass.conf
  • /etc/rofi-gopass.conf

or, alternatively, a custom directory if the RGP_CONFIGURATION_FILE variable points to a configuration file.

To use environment variables to configure any of these options or keys, prefix them with RGP_, so that e.g. KEY_AUTOFILL becomes RGP_KEY_AUTOFILL. Environment variables take precedence over configuration file settings.

Additional configuration options:

  • AUTOFILL_BACKEND :sets the auto-filling tool used, only tested with xdotool currently.

  • AUTOFILL_CHAIN :sets the chain of keys that should be sent to auto-fill an entry. Can use the following special fields: :tab, :space, :return, username, password.

    The default chain is username :tab password, which will enter the username, simulate the tab-key to switch from the username to the password field, and enter the password. This can be changed to suit your needs. To, for example, log in fully automatically at the end of the sequence, change it to username :tab password :return, and there will be no further user input for the login required.

  • AUTOFILL_DELAY :sets the time for xdotool to wait in-between simulated actions, if some letters appear missing or the fields are not switched between quickly enough, it can usually be fixed by increasing this delay (though typing will also take longer)

  • GOPASS_USERNAME_FIELD :sets the name of the field in gopass secrets which contain the username. Usually, the default setting should be fine (it will look for user, then username, then login) but custom field names can be supplied. If multiple field names are given, it will use the first supplied field name a secret contains.