summaryrefslogtreecommitdiffstats
path: root/Operations.hs
diff options
context:
space:
mode:
authorJason Creighton <jcreigh@gmail.com>2007-04-01 03:27:12 +0200
committerJason Creighton <jcreigh@gmail.com>2007-04-01 03:27:12 +0200
commit9701d5c589206787b36407e83133319c2810d735 (patch)
tree7849e95d82cc33686228930d4074561bc859587b /Operations.hs
parent0f15ab8cd0f051e3a6ca3f71c4d4d2761afa3f48 (diff)
downloadmetatile-9701d5c589206787b36407e83133319c2810d735.tar
metatile-9701d5c589206787b36407e83133319c2810d735.zip
"dmenu" operation to spawn dmenu only on the current screen (for Xinerama)
This requires a dmenu that will accept -x and -w. Currently, This means applying this patch: http://www.jcreigh.com/dmenu/position-options.patch (I'm trying to see if I can get this into dmenu upstream; haven't heard anything back yet.) darcs-hash:20070401012712-b9aa7-00f28388a705814f8e542e8b25b1b41922e3cc6c
Diffstat (limited to 'Operations.hs')
-rw-r--r--Operations.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/Operations.hs b/Operations.hs
index 4e2ae49..bd73fc4 100644
--- a/Operations.hs
+++ b/Operations.hs
@@ -343,3 +343,14 @@ restart = do
prog <- getProgName
args <- getArgs
executeFile prog True args Nothing
+
+-- | Starts dmenu on the current screen. (Requires patches to dmenu for the -x
+-- and -w options.)
+dmenu :: X ()
+dmenu = do
+ xinesc <- gets xineScreens
+ ws <- gets workspace
+ ws2sc <- gets wsOnScreen
+ let curscreen = fromMaybe 0 (M.lookup (W.current ws) ws2sc)
+ sc = xinesc !! curscreen
+ spawn $ "exe=`dmenu_path | dmenu -x " ++ (show $ rect_x sc) ++ " -w " ++ (show $ rect_width sc) ++ "` && exec $exe"