Copyright | (c) 2013 Dmitri Iouchtchenko |
---|---|
License | BSD3-style (see LICENSE) |
Maintainer | Dmitri Iouchtchenko <johnnyspoon@gmail.com> |
Stability | unstable |
Portability | unportable |
Safe Haskell | None |
Language | Haskell98 |
Keeps track of workspace viewing order.
Synopsis
- workspaceHistoryHook :: X ()
- workspaceHistoryHookExclude :: [WorkspaceId] -> X ()
- workspaceHistory :: X [WorkspaceId]
- workspaceHistoryByScreen :: X [(ScreenId, [WorkspaceId])]
- workspaceHistoryWithScreen :: X [(ScreenId, WorkspaceId)]
- workspaceHistoryTransaction :: X () -> X ()
- workspaceHistoryModify :: ([(ScreenId, WorkspaceId)] -> [(ScreenId, WorkspaceId)]) -> X ()
Usage
To record the order in which you view workspaces, you can use this
module with the following in your ~/.xmonad/xmonad.hs
:
import XMonad.Hooks.WorkspaceHistory (workspaceHistoryHook)
Then add the hook to your logHook
:
main = xmonad $ def { ... , logHook = ... >> workspaceHistoryHook >> ... , ... }
If you want to completely exclude certain workspaces from entering
the history, you can use workspaceHistoryHookExclude
instead. For
example, to ignore the named scratchpad workspace:
import XMonad.Util.NamedScratchpad (scratchpadWorkspaceTag) ... , logHook = ... >> workspaceHistoryHookExclude [scratchpadWorkspaceTag] >> ...
To make use of the collected data, a query function is provided.
workspaceHistoryHook :: X () Source #
A logHook
that keeps track of the order in which workspaces have
been viewed.
workspaceHistoryHookExclude :: [WorkspaceId] -> X () Source #
Like workspaceHistoryHook
, but with the ability to exclude
certain workspaces.
Querying
workspaceHistory :: X [WorkspaceId] Source #
A list of workspace tags in the order they have been viewed, with the most recent first. No duplicates are present, but not all workspaces are guaranteed to appear, and there may be workspaces that no longer exist.
workspaceHistoryByScreen :: X [(ScreenId, [WorkspaceId])] Source #
Handling edits
workspaceHistoryTransaction :: X () -> X () Source #
workspaceHistoryModify :: ([(ScreenId, WorkspaceId)] -> [(ScreenId, WorkspaceId)]) -> X () Source #
Modify a the workspace history with a given pure function.