Copyright | (c) David Roundy <droundy@darcs.net> |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | none |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell98 |
Provides bindings to add and delete workspaces.
- addWorkspace :: String -> X ()
- addWorkspacePrompt :: XPConfig -> X ()
- appendWorkspace :: String -> X ()
- appendWorkspacePrompt :: XPConfig -> X ()
- addWorkspaceAt :: (WindowSpace -> [WindowSpace] -> [WindowSpace]) -> String -> X ()
- removeWorkspace :: X ()
- removeWorkspaceByTag :: String -> X ()
- removeEmptyWorkspace :: X ()
- removeEmptyWorkspaceAfter :: X () -> X ()
- removeEmptyWorkspaceAfterExcept :: [String] -> X () -> X ()
- addHiddenWorkspace :: String -> X ()
- addHiddenWorkspaceAt :: (WindowSpace -> [WindowSpace] -> [WindowSpace]) -> String -> X ()
- withWorkspace :: XPConfig -> (String -> X ()) -> X ()
- selectWorkspace :: XPConfig -> X ()
- renameWorkspace :: XPConfig -> X ()
- renameWorkspaceByName :: String -> X ()
- toNthWorkspace :: (String -> X ()) -> Int -> X ()
- withNthWorkspace :: (String -> WindowSet -> WindowSet) -> Int -> X ()
Usage
You can use this module with the following in your ~/.xmonad/xmonad.hs
file:
import XMonad.Actions.DynamicWorkspaces import XMonad.Actions.CopyWindow(copy)
Then add keybindings like the following:
, ((modm .|. shiftMask, xK_BackSpace), removeWorkspace) , ((modm .|. shiftMask, xK_v ), selectWorkspace def) , ((modm, xK_m ), withWorkspace def (windows . W.shift)) , ((modm .|. shiftMask, xK_m ), withWorkspace def (windows . copy)) , ((modm .|. shiftMask, xK_r ), renameWorkspace def)
-- mod-[1..9] %! Switch to workspace N -- mod-shift-[1..9] %! Move client to workspace N ++ zip (zip (repeat (modm)) [xK_1..xK_9]) (map (withNthWorkspace W.greedyView) [0..]) ++ zip (zip (repeat (modm .|. shiftMask)) [xK_1..xK_9]) (map (withNthWorkspace W.shift) [0..])
For detailed instructions on editing your key bindings, see
XMonad.Doc.Extending. See also the documentation for
XMonad.Actions.CopyWindow, windows
, shift
, and XPConfig
.
addWorkspace :: String -> X () Source
Add a new workspace with the given name, or do nothing if a workspace with the given name already exists; then switch to the newly created workspace.
addWorkspacePrompt :: XPConfig -> X () Source
Prompt for the name of a new workspace, add it if it does not already exist, and switch to it.
appendWorkspace :: String -> X () Source
Same as addWorkspace, but adds the workspace to the end of the list of workspaces
appendWorkspacePrompt :: XPConfig -> X () Source
Prompt for the name of a new workspace, appending it to the end of the list of workspaces if it does not already exist, and switch to it.
addWorkspaceAt :: (WindowSpace -> [WindowSpace] -> [WindowSpace]) -> String -> X () Source
Adds a new workspace with the given name to the current list of workspaces. This function allows the user to pass a function that inserts an element into a list at an arbitrary spot.
removeWorkspace :: X () Source
Remove the current workspace.
removeWorkspaceByTag :: String -> X () Source
Remove workspace with specific tag.
removeEmptyWorkspace :: X () Source
Remove the current workspace if it contains no windows.
removeEmptyWorkspaceAfter :: X () -> X () Source
Remove the current workspace after an operation if it is empty and hidden. Can be used to remove a workspace if it is empty when leaving it. The operation may only change workspace once, otherwise the workspace will not be removed.
removeEmptyWorkspaceAfterExcept :: [String] -> X () -> X () Source
Like removeEmptyWorkspaceAfter
but use a list of sticky workspaces,
whose entries will never be removed.
addHiddenWorkspace :: String -> X () Source
Add a new hidden workspace with the given name, or do nothing if a workspace with the given name already exists.
addHiddenWorkspaceAt :: (WindowSpace -> [WindowSpace] -> [WindowSpace]) -> String -> X () Source
Add a new hidden workspace with the given name, or do nothing if a workspace with the given name already exists. Takes a function to insert the workspace at an arbitrary spot in the list.
selectWorkspace :: XPConfig -> X () Source
renameWorkspace :: XPConfig -> X () Source
renameWorkspaceByName :: String -> X () Source