aboutsummaryrefslogtreecommitdiffstats
path: root/WmiiActions.hs
diff options
context:
space:
mode:
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" [] ""
-