aboutsummaryrefslogtreecommitdiffstats
path: root/XMonad/Util/Dmenu.hs
diff options
context:
space:
mode:
Diffstat (limited to 'XMonad/Util/Dmenu.hs')
-rw-r--r--XMonad/Util/Dmenu.hs24
1 files changed, 16 insertions, 8 deletions
diff --git a/XMonad/Util/Dmenu.hs b/XMonad/Util/Dmenu.hs
index ad0ccfc..8a8dc08 100644
--- a/XMonad/Util/Dmenu.hs
+++ b/XMonad/Util/Dmenu.hs
@@ -15,10 +15,10 @@
-----------------------------------------------------------------------------
module XMonad.Util.Dmenu (
- -- * Usage
- -- $usage
- dmenu, dmenuXinerama, dmenuMap
- ) where
+ -- * Usage
+ -- $usage
+ dmenu, dmenuXinerama, dmenuMap, menu, menuMap
+ ) where
import XMonad
import qualified XMonad.StackSet as W
@@ -40,9 +40,17 @@ dmenuXinerama opts = do
io $ runProcessWithInput "dmenu" ["-xs", show (curscreen+1)] (unlines opts)
dmenu :: [String] -> X String
-dmenu opts = io $ runProcessWithInput "dmenu" [] (unlines opts)
+dmenu opts = menu "dmenu" opts
-dmenuMap :: M.Map String a -> X (Maybe a)
-dmenuMap selectionMap = do
- selection <- dmenu (M.keys selectionMap)
+menu :: String -> [String] -> X String
+menu menuCmd opts = io $ runProcessWithInput menuCmd [] (unlines opts)
+
+menuMap :: String -> M.Map String a -> X (Maybe a)
+menuMap menuCmd selectionMap = do
+ selection <- menuFunction (M.keys selectionMap)
return $ M.lookup selection selectionMap
+ where
+ menuFunction = menu menuCmd
+
+dmenuMap :: M.Map String a -> X (Maybe a)
+dmenuMap selectionMap = menuMap "dmenu" selectionMap \ No newline at end of file