X.A.WorkspaceNames: Provide workspaceListTransform for EwmhDesktops

Together with ewmhDesktopsLogHookCustom this exposes workspace names to
external pagers.

Fixes: https://github.com/xmonad/xmonad-contrib/pull/105
Fixes: https://github.com/xmonad/xmonad-contrib/pull/122
Co-authored-by: Ivan Malison <IvanMalison@gmail.com>
This commit is contained in:
Tomas Janousek 2020-11-05 11:37:42 +00:00
parent 3dc6b44f86
commit f271d59c34
2 changed files with 20 additions and 1 deletions

View File

@ -251,6 +251,11 @@
- Export `Minimize` type constructor.
* `XMonad.Actions.WorkspaceNames`
- Added `workspaceNamesListTransform` which makes workspace names visible
to external pagers.
* Several `LayoutClass` instances now have an additional `Typeable`
constraint which may break some advanced configs. The upside is that we
can now add `Typeable` to `LayoutClass` in `XMonad.Core` and make it

View File

@ -37,7 +37,10 @@ module XMonad.Actions.WorkspaceNames (
swapWithCurrent,
-- * Workspace prompt
workspaceNamePrompt
workspaceNamePrompt,
-- * EwmhDesktops integration
workspaceNamesListTransform
) where
import XMonad
@ -184,3 +187,14 @@ workspaceNamePrompt conf job = do
Just i -> i
contains completions input =
return $ filter (Data.List.isInfixOf input) completions
-- | Workspace list transformation for
-- 'XMonad.Hooks.EwmhDesktops.ewmhDesktopsLogHookCustom' that exposes
-- workspace names to pagers and other EWMH-aware clients.
--
-- Usage:
-- > logHook = (workspaceNamesListTransform >>= ewmhDesktopsLogHookCustom) <+> …
workspaceNamesListTransform :: X ([WindowSpace] -> [WindowSpace])
workspaceNamesListTransform = do
names <- getWorkspaceNames
return $ map $ \ws -> ws{ W.tag = names $ W.tag ws }