diff options
Diffstat (limited to '')
-rw-r--r-- | XMonad/Prompt/ConfirmPrompt.hs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/XMonad/Prompt/ConfirmPrompt.hs b/XMonad/Prompt/ConfirmPrompt.hs new file mode 100644 index 0000000..650b62a --- /dev/null +++ b/XMonad/Prompt/ConfirmPrompt.hs @@ -0,0 +1,51 @@ +----------------------------------------------------------------------------- +-- | +-- Module : XMonad.Prompt.ConfirmPrompt +-- Copyright : (C) 2015 Antoine Beaupré +-- License : BSD3 +-- +-- Maintainer : Antoine Beaupré <anarcat@debian.org> +-- Stability : unstable +-- Portability : unportable +-- +-- A module for setting up simple confirmation prompts for keybindings. +-- +----------------------------------------------------------------------------- +module XMonad.Prompt.ConfirmPrompt (confirmPrompt + -- * Usage + -- $usage + , module XMonad.Prompt + -- * Use case: confirming exit + -- $tip + , EnterPrompt + ) where + +import XMonad (X) +import XMonad.Prompt (XPConfig, XPrompt, showXPrompt, mkXPrompt, mkComplFunFromList) + +{- $usage + +This module makes it easy to add a confirmation prompt for specific +actions. Instead of just running the action, a simple confirmation +prompt will be created using 'XMonad.Prompt' primitives. The action +will then run normally if the user confirms. +-} + +{- $tip +This should be used something like this: + +> ... +> , ((modm , xK_l), confirmPrompt defaultXPConfig "exit" $ io (exitWith ExitSuccess)) +> ... +-} + +{- | Customized 'XPrompt' prompt that will ask to confirm the given string -} +data EnterPrompt = EnterPrompt String +instance XPrompt EnterPrompt where + showXPrompt (EnterPrompt n) = "Confirm " ++ n ++ " (esc/ENTER)" + +{- | Prompt the user to confirm a given action. We offer no completion + and simply ask to confirm (ENTER) or cancel (ESCAPE). The actual key + handling is done by mkXPrompt.-} +confirmPrompt :: XPConfig -> String -> X() -> X() +confirmPrompt config app func = mkXPrompt (EnterPrompt app) config (mkComplFunFromList []) $ const func |