A stack of stacks is a more natural representation of what SubLayouts does: it packs information about the global focus as well as focus in individual groups (sublayouts). It doesn't carry information about the sublayouts themselves (but a similar structure in X.L.Groups does), so we still use Groups and fromGroups in some places, but future refactor can simplify that as well, I'm sure. My main motivation for this is that I need to expose the window groups to the user config, and a stack of stacks seems to be a nice data structure for that. The motivation for exposing the groups is that I want to manipulate focus in a way that takes groups into account. As an example, I want the following: * mod-1, mod-2 to mod-0 switches to n-th group if not already focused, and if focused, focus next in the group * show these numbers and window titles in xmobar (like tmux/screen/vim status line), like so: 1a weechat 1b browser 2 vim 3 mutt Achieving this just using BoringWindows is quite tricky, but with the ability to somehow (InspectLayout, which is work-in-progress, or message with IORef) get the stack of stacks out of SubLayouts, this becomes easy.
xmonad-contrib: Third Party Extensions to the xmonad Window Manager
You need the ghc compiler and xmonad window manager installed in order to use these extensions.
For installation and configuration instructions, please see the xmonad website, the documents included with the xmonad source distribution, and the online haddock documentation.
Getting or Updating XMonadContrib
-
Latest release: https://hackage.haskell.org/package/xmonad-contrib
-
Git version: https://github.com/xmonad/xmonad-contrib
(To use git xmonad-contrib you must also use the git version of xmonad.)
Contributing
Haskell code contributed to this repo should live under the
appropriate subdivision of the XMonad
namespace (currently includes
Actions
, Config
, Hooks
, Layout
, Prompt
, and Util
). For
example, to use the Grid layout, one would import:
XMonad.Layout.Grid
For further details, see the documentation for the
XMonad.Doc.Developing
module, XMonad's CONTRIBUTING.md and the xmonad website.
License
Code submitted to the contrib repo is licensed under the same license as xmonad itself, with copyright held by the authors.