xmonad-contrib-0.18.1: Community-maintained extensions for xmonad
Copyright(c) 2014 Igor Babuschkin Antoine R. Dumont
LicenseBSD3-style (see LICENSE)
MaintainerAntoine R. Dumont <eniotna.t@gmail.com>
Stabilityunstable
Portabilityunportable
Safe HaskellNone
LanguageHaskell2010

XMonad.Prompt.Pass

Description

A thin wrapper around the standard pass(1) UNIX utility.

This module provides several prompts to ease password manipulation (generate, read, edit, remove); all of them benefit from the completion system provided by XMonad.Prompt. Specifically, we provide

  • various functions to lookup passwords in the password-store:

    + passPrompt copies the password directly to the clipboard.

    + passOTPPrompt copies a one-time-password to the clipboard (this uses pass-otp).

    + passTypePrompt and passOTPTypePrompt work like the above, respectively, but use xdotool to type out the password.

  • passGeneratePrompt generates a password for a given password label that the user inputs.
  • passEditPrompt edits a password for a given password label that the user inputs.
  • passRemovePrompt deletes a stored password for a given password label that the user inputs.

The password store is setup through an environment variable $PASSWORD_STORE_DIR, or $HOME/.password-store if it is unset. The editor is determined from the environment variable $EDITOR.

Source:

Synopsis

Usage

You can use this module with the following in your xmonad.hs:

import XMonad.Prompt.Pass

Then add a keybinding for passPrompt, passGeneratePrompt, passRemovePrompt, passEditPrompt or passTypePrompt:

  , ((modMask , xK_p)                              , passPrompt def)
  , ((modMask .|. controlMask, xK_p)               , passGeneratePrompt def)
  , ((modMask .|. shiftMask, xK_p)                 , passEditPrompt def)
  , ((modMask .|. controlMask  .|. shiftMask, xK_p), passRemovePrompt def)

You can also use the versions that let you specify a custom prompt:

  , ((modMask , xK_p)                              , passPrompt' "Ask 'pass' for" def)

Note that, by default, we do not use fuzzy matching in this module. To enable this feature, import the XMonad.Prompt.FuzzyMatch module and add the relevant functions to your prompt configuration:

myXPConfig :: XPConfig
myXPConfig = def
  { searchPredicate = fuzzyMatch
  , sorter          = fuzzySort
  }

, ((modMask , xK_p), passPrompt myXPConfig)

For detailed instructions on:

Retrieving passwords

passPrompt :: XPConfig -> X () Source #

A prompt to retrieve a password from a given entry.

passPrompt' :: String -> XPConfig -> X () Source #

The same as passPrompt but with a user-specified prompt.

passTypePrompt :: XPConfig -> X () Source #

A prompt to type in a password for a given entry. This doesn't touch the clipboard.

Editing passwords

passEditPrompt :: XPConfig -> X () Source #

A prompt to edit a given entry. This doesn't touch the clipboard.

passEditPrompt' :: String -> XPConfig -> X () Source #

The same as passEditPrompt but with a user-specified prompt.

passRemovePrompt :: XPConfig -> X () Source #

A prompt to remove a password for a given entry. (Beware that no confirmation is asked)

passRemovePrompt' :: String -> XPConfig -> X () Source #

The same as passRemovePrompt but with a user-specified prompt.

passGeneratePrompt :: XPConfig -> X () Source #

A prompt to generate a password for a given entry. This can be used to override an already stored entry. (Beware that no confirmation is asked)

passGeneratePrompt' :: String -> XPConfig -> X () Source #

The same as passGeneratePrompt but with a user-specified prompt.

passGenerateAndCopyPrompt :: XPConfig -> X () Source #

A prompt to generate a password for a given entry and immediately copy it to the clipboard. This can be used to override an already stored entry. (Beware that no confirmation is asked)

passGenerateAndCopyPrompt' :: String -> XPConfig -> X () Source #

The same as passGenerateAndCopyPrompt but with a user-specified prompt.

One-time-passwords

passOTPPrompt :: XPConfig -> X () Source #

A prompt to retrieve a OTP from a given entry. Note that you will need to use the pass-otp extension for this to work.

passOTPTypePrompt :: XPConfig -> X () Source #

A prompt to retrieve a OTP from a given entry. Note that you will need to use the pass-otp extension for this to work.