diff options
author | David Roundy <droundy@darcs.net> | 2007-09-24 00:14:56 +0200 |
---|---|---|
committer | David Roundy <droundy@darcs.net> | 2007-09-24 00:14:56 +0200 |
commit | ef85e9bad7f649bb5d08c46acdb3b5bb3d1a2603 (patch) | |
tree | d37c2667da7fde07201df959059f85702c2bbb71 /WorkspaceDir.hs | |
parent | c97e1e27f90b2c05bf4fdffe877a7f29fd227da3 (diff) | |
download | XMonadContrib-ef85e9bad7f649bb5d08c46acdb3b5bb3d1a2603.tar.gz XMonadContrib-ef85e9bad7f649bb5d08c46acdb3b5bb3d1a2603.tar.xz XMonadContrib-ef85e9bad7f649bb5d08c46acdb3b5bb3d1a2603.zip |
update WorkspaceDir.
darcs-hash:20070923221456-72aca-0e285119fa755256d088f3cb1f0876a6df0b2ca7.gz
Diffstat (limited to 'WorkspaceDir.hs')
-rw-r--r-- | WorkspaceDir.hs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/WorkspaceDir.hs b/WorkspaceDir.hs index f21cdf5..1570c46 100644 --- a/WorkspaceDir.hs +++ b/WorkspaceDir.hs @@ -32,7 +32,7 @@ import Operations ( sendMessage ) import XMonadContrib.Dmenu ( runProcessWithInput ) import XMonadContrib.XPrompt ( XPConfig ) import XMonadContrib.DirectoryPrompt ( directoryPrompt ) -import XMonadContrib.LayoutHelpers ( layoutModify ) +import XMonadContrib.LayoutModifier -- $usage -- You can use this module with the following in your Config.hs file: @@ -55,11 +55,16 @@ import XMonadContrib.LayoutHelpers ( layoutModify ) data Chdir = Chdir String deriving ( Typeable ) instance Message Chdir -workspaceDir :: String -> Layout a -> Layout a -workspaceDir wd = layoutModify dowd modwd - where dowd _ _ rws = scd wd >> return (rws, Nothing) - modwd m = return $ do Chdir wd' <- fromMessage m - Just $ workspaceDir wd' +data WorkspaceDir a = WorkspaceDir String deriving ( Read, Show ) + +instance LayoutModifier WorkspaceDir a where + hook (WorkspaceDir s) = scd s + modifyModify (WorkspaceDir _) m = return $ do Chdir wd <- fromMessage m + Just (WorkspaceDir wd) + +workspaceDir :: Layout l a => String -> l a + -> ModifiedLayout WorkspaceDir l a +workspaceDir s = ModifiedLayout (WorkspaceDir s) scd :: String -> X () scd x = do x' <- io (runProcessWithInput "bash" [] ("echo -n " ++ x) `catch` \_ -> return x) |