aboutsummaryrefslogtreecommitdiffstats
path: root/WorkspaceDir.hs
diff options
context:
space:
mode:
authorDavid Roundy <droundy@darcs.net>2007-07-26 15:35:20 +0200
committerDavid Roundy <droundy@darcs.net>2007-07-26 15:35:20 +0200
commiteca29c10f3fbf382f7f01fdbf2a728df7d88608d (patch)
tree8f722f686d701dc2df8acc5d7125877d639b7974 /WorkspaceDir.hs
parent29a89bf278b310b9364bed850a1f169d0a61df00 (diff)
downloadXMonadContrib-eca29c10f3fbf382f7f01fdbf2a728df7d88608d.tar.gz
XMonadContrib-eca29c10f3fbf382f7f01fdbf2a728df7d88608d.tar.xz
XMonadContrib-eca29c10f3fbf382f7f01fdbf2a728df7d88608d.zip
fix WorkspaceDir (which was broken) using LayoutHelpers.
darcs-hash:20070726133520-72aca-28bb4ee8d761e5a4f4040078b16c82d6989808fc.gz
Diffstat (limited to 'WorkspaceDir.hs')
-rw-r--r--WorkspaceDir.hs9
1 files changed, 5 insertions, 4 deletions
diff --git a/WorkspaceDir.hs b/WorkspaceDir.hs
index dba4b35..6877ea1 100644
--- a/WorkspaceDir.hs
+++ b/WorkspaceDir.hs
@@ -31,6 +31,7 @@ import Data.List ( nub )
import XMonad
import Operations ( sendMessage )
import XMonadContrib.Dmenu ( dmenu, runProcessWithInput )
+import XMonadContrib.LayoutHelpers ( layoutModify )
-- $usage
-- You can use this module with the following in your Config.hs file:
@@ -48,10 +49,10 @@ data Chdir = Chdir String deriving ( Typeable )
instance Message Chdir
workspaceDir :: String -> Layout a -> Layout a
-workspaceDir wd l = l { doLayout = \r x -> scd wd >> doLayout l r x
- , modifyLayout = ml }
- where ml m | Just (Chdir wd') <- fromMessage m = return $ Just (workspaceDir wd' l)
- | otherwise = fmap (workspaceDir wd) `fmap` modifyLayout l m
+workspaceDir wd = layoutModify dowd modwd
+ where dowd _ _ rws = scd wd >> return (rws, Nothing)
+ modwd m = return $ do Chdir wd' <- fromMessage m
+ Just $ workspaceDir wd'
scd :: String -> X ()
scd x = do x' <- io (runProcessWithInput "bash" [] ("echo -n " ++ x) `catch` \_ -> return x)