mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-04 22:21:54 -07:00
add dmenuMap function
This commit is contained in:
11
Dmenu.hs
11
Dmenu.hs
@@ -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)
|
||||||
|
Reference in New Issue
Block a user