From 84f928068fa7b6255c74e7707b4fb4b2c7c5594c Mon Sep 17 00:00:00 2001 From: brandon s allbery kf8nh Date: Sat, 20 Aug 2022 11:22:01 -0400 Subject: [PATCH 1/2] versions of pass functions with user-specified prompt By request of a user on IRC --- XMonad/Prompt/Pass.hs | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/XMonad/Prompt/Pass.hs b/XMonad/Prompt/Pass.hs index 1e66ac3e..68e85d0c 100644 --- a/XMonad/Prompt/Pass.hs +++ b/XMonad/Prompt/Pass.hs @@ -51,13 +51,18 @@ module XMonad.Prompt.Pass -- * Retrieving passwords passPrompt + , passPrompt' , passTypePrompt -- * Editing passwords , passEditPrompt + , passEditPrompt' , passRemovePrompt + , passRemovePrompt' , passGeneratePrompt + , passGeneratePrompt' , passGenerateAndCopyPrompt + , passGenerateAndCopyPrompt' -- * Misc , passOTPPrompt @@ -90,6 +95,10 @@ import XMonad.Util.Run (runProcessWithInput) -- > , ((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) +-- -- For detailed instructions on: -- -- - editing your key bindings, see "XMonad.Doc.Extending#Editing_key_bindings". @@ -137,7 +146,11 @@ mkPassPrompt promptLabel passwordFunction xpconfig = do -- | A prompt to retrieve a password from a given entry. -- passPrompt :: XPConfig -> X () -passPrompt = mkPassPrompt "Select password" selectPassword +passPrompt = passPrompt' "Select password" + +-- | The same as 'passPrompt' but with a user-specified prompt. +passPrompt' :: String -> XPConfig -> X () +passPrompt' s = mkPassPrompt s selectPassword -- | A prompt to retrieve a OTP from a given entry. Note that you will -- need to use the @@ -151,20 +164,32 @@ passOTPPrompt = mkPassPrompt "Select OTP" selectOTP -- (Beware that no confirmation is asked) -- passGeneratePrompt :: XPConfig -> X () -passGeneratePrompt = mkPassPrompt "Generate password" generatePassword +passGeneratePrompt = passGeneratePrompt' "Generate password" + +-- | The same as 'passGeneratePrompt' but with a user-specified prompt. +passGeneratePrompt' :: String -> XPConfig -> X () +passGeneratePrompt' s = mkPassPrompt s generatePassword -- | 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 :: XPConfig -> X () -passGenerateAndCopyPrompt = mkPassPrompt "Generate and copy password" generateAndCopyPassword +passGenerateAndCopyPrompt = passGenerateAndCopyPrompt' "Generate and copy password" + +-- | The same as 'passGenerateAndCopyPrompt' but with a user-specified prompt. +passGenerateAndCopyPrompt' :: String -> XPConfig -> X () +passGenerateAndCopyPrompt' s = mkPassPrompt s generateAndCopyPassword -- | A prompt to remove a password for a given entry. -- (Beware that no confirmation is asked) -- passRemovePrompt :: XPConfig -> X () -passRemovePrompt = mkPassPrompt "Remove password" removePassword +passRemovePrompt = passRemovePrompt' "Remove password" + +-- | The same as 'passRemovePrompt' but with a user-specified prompt. +passRemovePrompt' :: String -> XPConfig -> X () +passRemovePrompt' s = mkPassPrompt s removePassword -- | A prompt to type in a password for a given entry. -- This doesn't touch the clipboard. @@ -176,7 +201,11 @@ passTypePrompt = mkPassPrompt "Type password" typePassword -- This doesn't touch the clipboard. -- passEditPrompt :: XPConfig -> X () -passEditPrompt = mkPassPrompt "Edit password" editPassword +passEditPrompt = passEditPrompt' "Edit password" + +-- | The same as 'passEditPrompt' but with a user-specified prompt. +passEditPrompt' :: String -> XPConfig -> X () +passEditPrompt' s = mkPassPrompt s editPassword -- | Select a password. -- @@ -223,7 +252,7 @@ escapeQuote = concatMap escape escape '"' = "\\\"" escape x = [x] --- | Retrieve the list of passwords from the password store 'passwordStoreDir +-- | Retrieve the list of passwords from the password store 'passwordStoreDir' -- getPasswords :: FilePath -> IO [String] getPasswords passwordStoreDir = do From a7ed269a01d8d556906f1ce177c0e9d3c0851275 Mon Sep 17 00:00:00 2001 From: brandon s allbery kf8nh Date: Sat, 20 Aug 2022 11:28:24 -0400 Subject: [PATCH 2/2] update CHANGES.md --- CHANGES.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index c5d33eb2..3eacf90c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -94,6 +94,11 @@ ### Bug Fixes and Minor Changes + * `XMonad.Prompt.Pass` + + - Added new versions of the `pass` functions that allow user-specified + prompts. + * `XMonad.Prompt.OrgMode` - Fixes the date parsing issue such that entries with format of