2026-03-06
xmonad 0.18.1 and xmonad-contrib 0.18.2 are available
New versions of xmonad and xmonad-contrib have been released. Check out our download page for instructions on where to get them. For help getting started—or more info—see our website and talk to us! If you like what we do, you can support us on Open Collective or via GitHub Sponsors. Thanks!
Table of Contents
xmonad 0.18.1
This release includes 87 commits by 10 contributors! For a full summary of all the changes, see xmonad’s CHANGES.md file.
Breaking Changes
- Use
cabalfor--recompileif there is a.cabalfile in the config directory and none ofbuild,stack.yaml,flake.nix, nordefault.nixexist.
xmonad-contrib 0.18.2
This release includes 127 commits by 15 contributors! For a full summary of all the changes, see xmonad-contrib’s CHANGES.md file.
Breaking Changes
- Drop support for GHC 8.6
New Modules
-
XMonad.Util.StickyWindows- Stick windows on screens so they follow you across desktops.
Bug Fixes and Minor Changes
-
XMonad.Actions.WindowBringer-
Make sure functions that internally use their
…Argsversions pass on the defaultdmenuarguments.These are also now exported as
defaultDMenuArgsfor users using the…Argsversions but want to augment instead of replacing the defaultdmenuarguments.For users, the visible change will be that
bringMenuandcopyMenunow behave identically togotoMenu, as expected, instead of being case sensitive. Users who might have been relying on the incorrect behavior should replace*Menuwith*MenuArgs [].
-
-
XMonad.Util.XSelection- Added
getClipboardto query the X clipboard. Also addedgetSecondarySelection.
- Added
-
XMonad.Util.EZConfig- Added
XF86WLANandMenuto the list of supported special keys.
- Added
-
XMonad.Actions.DynamicProjects- No longer autodelete projects when
switchProjectis called from an empty workspace. This also fixes a bug where static workspaces would be deleted when switching to a dynamic project. - Improved documentation on how to close a project.
- No longer autodelete projects when
-
XMonad.Hooks.Rescreen-
Allow overriding the
rescreenoperation itself. Additionally, theXMonad.Actions.PhysicalScreensmodule now provides an alternative implementation ofrescreenthat avoids reshuffling the workspaces if the number of screens doesn’t change and only their locations do (which is especially common if one usesxrandr --setmonitorto split an ultra-wide display in two). -
Added an optional delay when waiting for events to settle. This may be used to avoid flicker and unnecessary workspace reshuffling if multiple
xrandrcommands are used to reconfigure the display layout.
-
-
XMonad.Layout.NoBorders- It’s no longer necessary to use
borderEventHookto garbage collectalwaysHidden/neverHiddenlists. The layout listens toDestroyWindowEventmessages instead, which are broadcast to layouts since xmonad v0.17.0.
- It’s no longer necessary to use
-
XMonad.Hooks.EwmhDesktops- Added a customization option for the action that gets executed when
a client sends a
_NET_CURRENT_DESKTOPrequest. It is now possible to change it using thesetEwmhSwitchDesktopHook. -
Added a customization option for mapping hidden workspaces to screens when setting the
_NET_DESKTOP_VIEWPORT. This can be done using thesetEwmhHiddenWorkspaceToScreenMapping. - Added support for
_NET_WM_STATE_{ABOVE,BELOW}to place windows correctly.
- Added a customization option for the action that gets executed when
a client sends a
-
XMonad.Layout.IndependentScreens- Added
focusWorkspacefor focusing workspaces on the screen that they belong to. - Added
doFocus'hook as an alternative fordoFocuswhen using IndependentScreens. - Added
screenOnMonitorfor getting the active screen for a monitor.
- Added
-
XMonad.Util.NamedScratchPad- Fix unintended window hiding in
nsSingleScratchpadPerWorkspace. Only hide the previously active scratchpad.
- Fix unintended window hiding in
-
XMonad.Actions.Search-
Added
multiChar,combineChar, andprefixAwareCharas slightly generalised versions ofprefixAwareand(!>)that allow specifying the character that separates a search engine’s prefix with the query when combining engines. -
Added the
ecosiasearch engine.
-
-
XMonad.Hooks.ManageDocks- Added
onAllDocksto run an action on all recognised docks.
- Added