| Copyright | (c) Tomas Janousek <tomi@nomi.cz> | 
|---|---|
| License | BSD3-style (see LICENSE) | 
| Maintainer | Tomas Janousek <tomi@nomi.cz> | 
| Stability | experimental | 
| Portability | unportable | 
| Safe Haskell | None | 
| Language | Haskell98 | 
XMonad.Actions.WorkspaceNames
Description
Provides bindings to rename workspaces, show these names in DynamicLog and swap workspaces along with their names. These names survive restart. Together with XMonad.Layout.WorkspaceDir this provides for a fully dynamic topic space workflow.
- renameWorkspace :: XPConfig -> X ()
- workspaceNamesPP :: PP -> X PP
- getWorkspaceNames :: X (WorkspaceId -> String)
- setWorkspaceName :: WorkspaceId -> String -> X ()
- setCurrentWorkspaceName :: String -> X ()
- swapTo :: Direction1D -> X ()
- swapTo' :: Direction1D -> WSType -> X ()
- swapWithCurrent :: WorkspaceId -> X ()
- workspaceNamePrompt :: XPConfig -> (String -> X ()) -> X ()
Usage
You can use this module with the following in your ~/.xmonad/xmonad.hs file:
import XMonad.Actions.WorkspaceNames
Then add keybindings like the following:
, ((modm .|. shiftMask, xK_r ), renameWorkspace def)
and apply workspaceNamesPP to your DynamicLog pretty-printer:
myLogHook =
    workspaceNamesPP xmobarPP >>= dynamicLogString >>= xmonadPropLogWe also provide a modification of XMonad.Actions.SwapWorkspaces's functionality, which may be used this way:
, ((modMask .|. shiftMask, xK_Left ), swapTo Prev) , ((modMask .|. shiftMask, xK_Right ), swapTo Next)
[((modm .|. controlMask, k), swapWithCurrent i)
    | (i, k) <- zip workspaces [xK_1 ..]]For detailed instructions on editing your key bindings, see XMonad.Doc.Extending.
Workspace naming
renameWorkspace :: XPConfig -> X () Source
Prompt for a new name for the current workspace and set it.
workspaceNamesPP :: PP -> X PP Source
Modify XMonad.Hooks.DynamicLog's pretty-printing format to show workspace names as well.
getWorkspaceNames :: X (WorkspaceId -> String) Source
Returns a function that maps workspace tag "t" to "t:name" for
 workspaces with a name, and to "t" otherwise.
setWorkspaceName :: WorkspaceId -> String -> X () Source
Sets the name of a workspace. Empty string makes the workspace unnamed again.
setCurrentWorkspaceName :: String -> X () Source
Sets the name of the current workspace. See setWorkspaceName.
Workspace swapping
swapTo :: Direction1D -> X () Source
See swapTo. This is the same with names.
swapTo' :: Direction1D -> WSType -> X () Source
Swap with the previous or next workspace of the given type.
swapWithCurrent :: WorkspaceId -> X () Source
See swapWithCurrent. This is almost the
 same with names.
Workspace prompt
workspaceNamePrompt :: XPConfig -> (String -> X ()) -> X () Source
Same behavior than workspacePrompt excepted it acts on the workspace name provided by this module.