aboutsummaryrefslogtreecommitdiffstats
path: root/WmiiActions.hs
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-11-01 21:10:59 +0100
commit4866f2e367dfcf22a9591231ba40948826a1b438 (patch)
tree7a245caee3f146826b267d773b7eaa80386a818e /WmiiActions.hs
parent47589e1913fb9530481caedb543978a30d4323ea (diff)
downloadXMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.gz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.tar.xz
XMonadContrib-4866f2e367dfcf22a9591231ba40948826a1b438.zip
Hierarchify
darcs-hash:20071101201059-a5988-fc1f1262bec1b69e13ba18ae7cefeafc8c4471d4.gz
Diffstat (limited to 'WmiiActions.hs')
-rw-r--r--WmiiActions.hs102
1 files changed, 0 insertions, 102 deletions
diff --git a/WmiiActions.hs b/WmiiActions.hs
deleted file mode 100644
index 2a82791..0000000
--- a/WmiiActions.hs
+++ /dev/null
@@ -1,102 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module : XMonadContrib.WmiiActions
--- Copyright : (c) Juraj Hercek <juhe_xmonad@hck.sk>
--- License : BSD3
---
--- Maintainer : Juraj Hercek <juhe_xmonad@hck.sk>
--- Stability : unstable
--- Portability : unportable
---
--- Provides `actions' as known from Wmii window manager (
--- <http://wmii.suckless.org>). It also provides slightly better interface for
--- running dmenu on xinerama screens. If you want to use xinerama functions,
--- you have to apply following patch (see Dmenu.hs extension):
--- <http://www.jcreigh.com/dmenu/dmenu-3.2-xinerama.patch>. Don't forget to
--- recompile dmenu afterwards ;-).
------------------------------------------------------------------------------
-
-module XMonadContrib.WmiiActions (
- -- * Usage
- -- $usage
- wmiiActions
- , wmiiActionsXinerama
- , executables
- , executablesXinerama
- ) where
-
-import XMonad
-import XMonadContrib.Dmenu (dmenu, dmenuXinerama)
-import XMonadContrib.Run (runProcessWithInput)
-
-import Control.Monad (filterM, liftM, liftM2)
-import System.Directory (getDirectoryContents, doesFileExist, getPermissions, executable)
-
--- $usage
---
--- You can use this module with the following in your Config.hs file:
---
--- > import XMonadContrib.WmiiActions
---
--- and add following to the list of keyboard bindings:
---
--- > ,((modMask, xK_a), wmiiActions "/home/joe/.wmii-3.5/")
---
--- or, if you are using xinerama, you can use
---
--- > ,((modMask, xK_a), wmiiActionsXinerama "/home/joe/.wmii-3.5/")
---
--- however, make sure you have also xinerama build of dmenu (for more
--- information see "XMonadContrib.Dmenu" extension).
-
--- | The 'wmiiActions' function takes the file path as a first argument and
--- executes dmenu with all executables found in the provided path.
-wmiiActions :: FilePath -> X ()
-wmiiActions path =
- wmiiActionsDmenu path dmenu
-
--- | The 'wmiiActionsXinerama' does the same as 'wmiiActions', but it shows
--- dmenu only on workspace which currently owns focus.
-wmiiActionsXinerama :: FilePath -> X ()
-wmiiActionsXinerama path =
- wmiiActionsDmenu path dmenuXinerama
-
-wmiiActionsDmenu :: FilePath -> ([String] -> X String) -> X ()
-wmiiActionsDmenu path dmenuBrand =
- let path' = path ++ "/" in
- getExecutableFileList path' >>= dmenuBrand >>= spawn . (path' ++)
-
-getExecutableFileList :: FilePath -> X [String]
-getExecutableFileList path =
- io $ getDirectoryContents path >>=
- filterM (\x -> let x' = path ++ x in
- liftM2 (&&)
- (doesFileExist x')
- (liftM executable (getPermissions x')))
-
-{-
-getExecutableFileList :: FilePath -> X [String]
-getExecutableFileList path =
- io $ getDirectoryContents path >>=
- filterM (doesFileExist . (path ++)) >>=
- filterM (liftM executable . getPermissions . (path ++))
--}
-
--- | The 'executables' function runs dmenu_path script providing list of
--- executable files accessible from $PATH variable.
-executables :: X ()
-executables = executablesDmenu dmenu
-
--- | The 'executablesXinerama' function does the same as 'executables' function
--- but on workspace which currently owns focus.
-executablesXinerama :: X ()
-executablesXinerama = executablesDmenu dmenuXinerama
-
-executablesDmenu :: ([String] -> X String) -> X ()
-executablesDmenu dmenuBrand =
- getExecutablesList >>= dmenuBrand >>= spawn
-
-getExecutablesList :: X [String]
-getExecutablesList =
- io $ liftM lines $ runProcessWithInput "dmenu_path" [] ""
-