From eca29c10f3fbf382f7f01fdbf2a728df7d88608d Mon Sep 17 00:00:00 2001 From: David Roundy Date: Thu, 26 Jul 2007 15:35:20 +0200 Subject: fix WorkspaceDir (which was broken) using LayoutHelpers. darcs-hash:20070726133520-72aca-28bb4ee8d761e5a4f4040078b16c82d6989808fc.gz --- WorkspaceDir.hs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'WorkspaceDir.hs') 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) -- cgit v1.2.3