add dmenuMap function

This commit is contained in:
Devin Mullins
2007-10-07 17:25:43 +00:00
parent be8baa8324
commit 87a35e799a

View File

@@ -3,7 +3,7 @@
-- Module : XMonadContrib.Dmenu -- Module : XMonadContrib.Dmenu
-- Copyright : (c) Spencer Janssen <sjanssen@cse.unl.edu> -- Copyright : (c) Spencer Janssen <sjanssen@cse.unl.edu>
-- License : BSD-style (see LICENSE) -- License : BSD-style (see LICENSE)
-- --
-- Maintainer : Spencer Janssen <sjanssen@cse.unl.edu> -- Maintainer : Spencer Janssen <sjanssen@cse.unl.edu>
-- Stability : unstable -- Stability : unstable
-- Portability : unportable -- Portability : unportable
@@ -14,13 +14,14 @@
module XMonadContrib.Dmenu ( module XMonadContrib.Dmenu (
-- * Usage -- * Usage
-- $usage -- $usage
dmenu, dmenuXinerama, dmenu, dmenuXinerama, dmenuMap,
runProcessWithInput runProcessWithInput
) where ) where
import XMonad import XMonad
import qualified StackSet as W import qualified StackSet as W
import qualified Data.Map as M
import System.Exit import System.Exit
import System.Process import System.Process
import System.IO import System.IO
@@ -58,3 +59,7 @@ dmenuXinerama opts = do
dmenu :: [String] -> X (Maybe String) dmenu :: [String] -> X (Maybe String)
dmenu opts = io $ runProcessWithInput "dmenu" [] (unlines opts) 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)