diff options
author | David Roundy <droundy@darcs.net> | 2007-10-17 00:33:47 +0200 |
---|---|---|
committer | David Roundy <droundy@darcs.net> | 2007-10-17 00:33:47 +0200 |
commit | d1587d44209f924682f25dffff584d6e052029a4 (patch) | |
tree | 4de9e6b397c30865baa62817fda4a43a89837e60 /DynamicWorkspaces.hs | |
parent | d1919800f85b211ca7b4e9d52cba2d3cb1e56264 (diff) | |
download | XMonadContrib-d1587d44209f924682f25dffff584d6e052029a4.tar.gz XMonadContrib-d1587d44209f924682f25dffff584d6e052029a4.tar.xz XMonadContrib-d1587d44209f924682f25dffff584d6e052029a4.zip |
add modules to deal with Workspaces (select, etc) by name using XPrompt.
darcs-hash:20071016223347-72aca-a0a6ab2a43a33f5901640fa2f192e0af3ef61a74.gz
Diffstat (limited to 'DynamicWorkspaces.hs')
-rw-r--r-- | DynamicWorkspaces.hs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/DynamicWorkspaces.hs b/DynamicWorkspaces.hs index f212cab..e9bd06c 100644 --- a/DynamicWorkspaces.hs +++ b/DynamicWorkspaces.hs @@ -16,7 +16,8 @@ module XMonadContrib.DynamicWorkspaces ( -- * Usage -- $usage - addWorkspace, removeWorkspace + addWorkspace, removeWorkspace, + selectWorkspace ) where import Control.Monad.State ( gets ) @@ -25,18 +26,27 @@ import XMonad ( X, XState(..), Layout, WorkspaceId ) import Operations import StackSet hiding (filter, modify, delete) import Graphics.X11.Xlib ( Window ) +import XMonadContrib.WorkspacePrompt +import XMonadContrib.XPrompt ( XPConfig ) -- $usage -- You can use this module with the following in your Config.hs file: -- -- > import XMonadContrib.DynamicWorkspaces -- --- > , ((modMask .|. shiftMask, xK_Up), addWorkspace layouts) --- > , ((modMask .|. shiftMask, xK_Down), removeWorkspace) +-- > , ((modMask .|. shiftMask, xK_n), selectWorkspace defaultXPConfig layoutHook) +-- > , ((modMask .|. shiftMask, xK_BackSpace), removeWorkspace) allPossibleTags :: [WorkspaceId] allPossibleTags = map (:"") ['0'..] +selectWorkspace :: XPConfig -> Layout Window -> X () +selectWorkspace conf l = workspacePrompt conf $ \w -> + do s <- gets windowset + if tagMember w s + then windows $ greedyView w + else windows $ addWorkspace' w l + addWorkspace :: Layout Window -> X () addWorkspace l = do s <- gets windowset let newtag:_ = filter (not . (`tagMember` s)) allPossibleTags |