Dmenu.hs: info and documentation

This commit is contained in:
Andrea Rossato 2007-06-14 14:37:53 +00:00
parent c279ec4cea
commit 72450b2512

View File

@ -1,4 +1,23 @@
module XMonadContrib.Dmenu (dmenu, dmenuXinerama, runProcessWithInput) where -----------------------------------------------------------------------------
-- |
-- Module : XMonadContrib.Dmenu
-- Copyright : (c) Spencer Janssen <sjanssen@cse.unl.edu>
-- License : BSD-style (see LICENSE)
--
-- Maintainer : Spencer Janssen <sjanssen@cse.unl.edu>
-- Stability : unstable
-- Portability : unportable
--
-- A convenient binding to dmenu.
--
-----------------------------------------------------------------------------
module XMonadContrib.Dmenu (
-- * Usage
-- $usage
dmenu, dmenuXinerama,
runProcessWithInput
) where
import XMonad import XMonad
import qualified StackSet as W import qualified StackSet as W
@ -6,6 +25,11 @@ import System.Process
import System.IO import System.IO
import Control.Monad.State import Control.Monad.State
-- $usage
-- You can use this module with the following in your Config.hs file:
--
-- > import XMonadContrib.Dmenu
runProcessWithInput :: FilePath -> [String] -> String -> IO String runProcessWithInput :: FilePath -> [String] -> String -> IO String
runProcessWithInput cmd args input = do runProcessWithInput cmd args input = do
(pin, pout, perr, ph) <- runInteractiveProcess cmd args Nothing Nothing (pin, pout, perr, ph) <- runInteractiveProcess cmd args Nothing Nothing
@ -18,8 +42,8 @@ runProcessWithInput cmd args input = do
waitForProcess ph waitForProcess ph
return output return output
-- Starts dmenu on the current screen. Requires this patch to dmenu: -- | Starts dmenu on the current screen. Requires this patch to dmenu:
-- http://www.jcreigh.com/dmenu/dmenu-2.8-xinerama.patch -- http:\/\/www.jcreigh.com\/dmenu\/dmenu-2.8-xinerama.patch
dmenuXinerama :: [String] -> X String dmenuXinerama :: [String] -> X String
dmenuXinerama opts = do dmenuXinerama opts = do
curscreen <- (fromIntegral . W.screen . W.current) `liftM` gets windowset :: X Int curscreen <- (fromIntegral . W.screen . W.current) `liftM` gets windowset :: X Int