From 922f01f904a82042430afeb42ba3c7f3097db4bd Mon Sep 17 00:00:00 2001 From: Devin Mullins Date: Sun, 7 Oct 2007 19:25:43 +0200 Subject: add dmenuMap function darcs-hash:20071007172543-78224-1664213772e1505d837af8fadf8903349bb430bc.gz --- Dmenu.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Dmenu.hs') diff --git a/Dmenu.hs b/Dmenu.hs index e5542c9..f2d23fe 100644 --- a/Dmenu.hs +++ b/Dmenu.hs @@ -3,7 +3,7 @@ -- Module : XMonadContrib.Dmenu -- Copyright : (c) Spencer Janssen -- License : BSD-style (see LICENSE) --- +-- -- Maintainer : Spencer Janssen -- Stability : unstable -- Portability : unportable @@ -14,13 +14,14 @@ module XMonadContrib.Dmenu ( -- * Usage - -- $usage - dmenu, dmenuXinerama, + -- $usage + dmenu, dmenuXinerama, dmenuMap, runProcessWithInput ) where import XMonad import qualified StackSet as W +import qualified Data.Map as M import System.Exit import System.Process import System.IO @@ -58,3 +59,7 @@ dmenuXinerama opts = do dmenu :: [String] -> X (Maybe String) dmenu opts = io $ runProcessWithInput "dmenu" [] (unlines opts) + +dmenuMap :: M.Map String a -> X (Maybe a) +dmenuMap selectionMap = + dmenu (M.keys selectionMap) >>= return . maybe Nothing (flip M.lookup selectionMap) -- cgit v1.2.3