xmonad-contrib-0.17.0: Community-maintained extensions extensions for xmonad
Copyright(c) 2013 Dmitri Iouchtchenko
LicenseBSD3-style (see LICENSE)
MaintainerDmitri Iouchtchenko <johnnyspoon@gmail.com>
Stabilityunstable
Portabilityunportable
Safe HaskellNone
LanguageHaskell2010

XMonad.Hooks.WorkspaceHistory

Description

Keeps track of workspace viewing order.

Synopsis

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.

Handling edits

workspaceHistoryModify :: ([(ScreenId, WorkspaceId)] -> [(ScreenId, WorkspaceId)]) -> X () Source #

Modify a the workspace history with a given pure function.