Releases: conformal/spectrwm
Releases · conformal/spectrwm
spectrwm 3.7.0 released!
spectrwm 3.7.0
Released on Aug 26, 2025
Adds a centered mode for tiled layouts, configuration reload, increases the
maximum number of workspaces, and more.
- Add centered mode for tiled layouts.
- Add
center_layoutaction (default:M-backslash). Toggle centering of
the master area. - Add
center_adaptiveoption to only center when centering does not create
empty space. - Add
center_autobalanceoption to automatically balance the master/stacking
areas when toggling centered mode. - Add
center_noautostackoption to disable automatically adding an extra
stack when centering a layout with a single stack. - Add
center_nowrapoption to allow the centered master area to split the
original order of stacks instead of maintaining tiling order. - Add corresponding layout and stack_mark options.
- Add
- Add configuration reload.
- On reload, the configuration is reloaded without restarting and the bar(s)
are reinitialized along withbar_action(if used). - Add
reloadaction (default:unbound). Initiates a reload. - Add
SIGUSR1signal handling to initiate a reload.
- On reload, the configuration is reloaded without restarting and the bar(s)
- Improve uniconify.
- Add
uniconify_orderoption to set the window order in the uniconify menu. - Add
uniconify_quickaction (default:unbound). Uniconify the most
recently iconified window.
- Add
- Improve EWMH support.
- Add support for
_NET_WM_STATE_FOCUSED. - Improve
_NET_WM_DESKTOPrequest handling. - Improve
_NET_WM_ALLOWED_ACTIONSsupport. - Fix
_NET_WM_ALLOWED_ACTIONSproperty change issue. - Fix
_NET_DESKTOP_NAMEShandling.
- Add support for
- Add new quirks.
- Add
NOTILEquirk to disallow windows from being tiled. - Add
IGNOREURGENTquirk to ignore the urgency hint on windows. - Add
NOFOCUSPOINTERquirk to disable click-to-focus on windows.
- Add
- Increase the maximum
workspace_limitto 100. Note that bindings for
workspaces 23 and above are unbound by default. - Add
move_stepandresize_stepoptions to configure the pixel amount to
move/resize a window when using the respective action bindings. - Add
bar_padding_horizontalandbar_padding_verticaloptions to adjust
the padding of bar text. - Add
disable_paddingoption to disable region padding when there is a single
window. - Improve transient window stacking to prevent dialogs from getting buried.
- Change the
restart_of_dayaction to ignoreautorunentries. - Fix compatibility issue with Wine.
- Fix pointer centering when focusing free mode windows.
- Fix free mode maximized/fullscreen unfocus handling issue.
- Fix move/resize refocus issue with globally active input model windows.
- Fix popup window refocus issue for free mode windows.
- Improve window management checks to better handle buggy programs.
- Improve debug output.
spectrwm 3.6.0 released!
spectrwm 3.6.0
Released on Jun 10, 2024
Adds some new features, removes limits and fixes bugs.
- Improve
focus_modeto support customization of specific focus situations. - Improve quirks.
- Add support for
+=and-=assignment operators for quirk assignment. - Add new optional window type field to quirks.
- Add
BELOWquirk. - Add
ICONIFYquirk. - Add
MAXIMIZEquirk.
- Add support for
- Add new
spawn_flagsoption to adjust program spawn entry settings. - Add new
layout_orderoption to customize the layout sequence used by the
cycle_layoutaction. - Improve bar font handling.
- Remove the
bar_fontlimit of 10 fonts when using Xft. - Extend
bar_formatmarkup sequences to support font indexes above 9.
- Remove the
- Improve bar color handling.
- Remove the 10 color limit on options that accept a color list.
- Extend
bar_formatmarkup sequences to support color indexes above 9. - Add support for the
+=operator with options that accept a color list. - Fix handling of normal/unfocus/free bar colors with different counts.
- Fix bar colors should be per X screen.
- Improve urgent window handling.
- Add
color_urgent*options to change the border colors of urgent windows. - Fix
focus_urgentsearch issue.
- Add
- Improve EWMH handling.
- Add special handling of
_NET_WM_WINDOW_TYPE_NOTIFICATIONwindows. - Fix
warp_pointershould not apply to_NET_WM_MOVERESIZE. - Fix
_NET_ACTIVE_WINDOWrequest handling. - Fix
_NET_DESKTOP_VIEWPORTS. - Fix EWMH
_NET_WM_DESKTOPrequests should not bypassworkspace_limit.
- Add special handling of
- Improve libswmhack.so.
- Add XCB support.
- Remove unneeded compile time linking with libX11.
- Improve symbol lookup.
- Add new
bar_workspace_limitoption to limit the workspaces shown in the
workspace (+L) and urgency hint (+U) indicators. - Fix flipped vertical/horizontal layout positioning issue.
- Fix segfault when setting the
layoutoption tofloating. - Fix window mapping issue when swapping a maximized window.
- Fix
swap_mainissue. - Fix listing of empty workspaces in
bar_format+Uand+L. - Fix escape handling of
+inbar_actionscript output. - Fix possible bar redraw delays.
- Fix some leaks and a possible crash.
- Fix building against XCB with RandR < 1.6.
- Improve RandR checks.
- Remove Xlib RandR dependency.
- Remove BSD function ports for Linux and depend on
libbsdinstead. - Improve included
spectrwm.desktopand move it to the main directory. - Improve man page.
- Improve CHANGELOG and README.
spectrwm 3.5.1 released!
spectrwm 3.5.1
Released on Nov 25, 2023
Fixes NetBSD support and a few minor issues.
- Fix
bar_at_bottombottom gap whenbar_border_width> 0. - Fix maximize new windows in max layout when
max_layout_maximize = 1. - Fix
autorunoption andWSquirk should accept a value of-1as stated
in the manual. - Fix
bar_color_freeandbar_font_color_freeoptions. - Fix bar urgency hint (+U) workspaces should begin at 1.
- Fix iconified windows should uniconify on MapRequest.
- Fix focus fallback issue when iconifying windows.
- Improve handling when programs try to position their own windows.
- Fix NetBSD build issues.
- Add NetBSD to list of OSes that have the XCB XInput Extension.
- Fix build failure when building without the XCB XInput Extension.
- Fix possible segfault at startup.
- Add SWMHACK section to manual.
- Fix typos in manual.
spectrwm 3.5.0 released!
spectrwm 3.5.0
Released on Oct 22, 2023
Includes a bunch of major new features and improvements, such as dock/panel
support, an always mapped window mode, floating workspace layout, transparent
color support, tons of fixes, and more!
- Add free window mode.
- free windows are floating windows that are not in a workspace. They remain
mapped and may be resized, positioned and stacked anywhere. When iconified,
they appear at the end of the uniconify menu. Note that free windows can be
stacked above/below workspace windows but must be put into a workspace and
unfloated to be part of its tiling layout.float_toggleis convenient for
this purpose. - Add
free_toggleaction (default:M-S-grave). Toggle focused window
between workspace mode and free mode. - Add
focus_freeaction (default:M-grave). Switch focus to/from windows in
free mode, if any. - Add related color and focus mark options.
- free windows are floating windows that are not in a workspace. They remain
- Improve EWMH (Extended Window Manager Hints) support.
- Add support for docks/panels and desktop managers.
- Add strut support for windows (e.g. panels) to automatically reserve screen
real estate. - Add support for applications to initiate move/resize operations.
- Add demands attention support to urgency features to include windows that
request focus but are denied. - Add support for below state to keep windows stacked below others.
- Improve _NET_ACTIVE_WINDOW handling.
- Fix _NET_DESKTOP_VIEWPORT should update on workspace and region changes.
- Improve window stacking.
- Overhaul window stacking for improved reliability and flexibility required
for new features/fixes. Windows are now stacked as a whole instead of per
region/workspace. - Add
click_to_raiseoption (default:1(enabled)). Raises stacking
priority when clicking on a window. - Add
below_toggleaction (default:M-S-t). Toggles below state on a
focused window to keep it below other windows.raisecan be used to
temporarily bring a window above all others. - Fix
raiseandalways_raisestacking issues. - Fix follow mode stacking issues.
- Fix stacking order issues.
- Restore stacking order after leaving fullscreen/maximized state.
- Overhaul window stacking for improved reliability and flexibility required
- Workaround application issues related to ICCCM 6.3 button grabs.
- If X Input Extension >= 2.1 is available, handle button bindings with the
REPLAYflag passively, without grabs. For other button bindings, establish
grabs on root. - Otherwise, for compatibility, establish all button binding grabs directly on
client windows.
- If X Input Extension >= 2.1 is available, handle button bindings with the
- Add alpha transparent color support for use with compositing managers. Colors
can now be specified with an alpha component via the format
rbga:rr/gg/bb/aa(values in hex.) - Improve bar fonts.
- Fallback to a "fail-safe" font if the default/user
bar_fontfails to load. - Add fallback handling for missing glyphs when using multiple fonts with Xft.
- Add supplementary private-use code points to
bar_font_pua. - Fix
$bar_fontprogram variable substitution should not include fallbacks.
- Fallback to a "fail-safe" font if the default/user
- Improve window mapping.
- Add
maximize_hide_otherandfullscreen_hide_otheroptions. When a
maximized/fullscreen window is focused, hide unrelated windows on the same
workspace. Useful for transparent windows. - Fix window mapping issue when handling simultaneous screen changes.
- Improve reliability.
- Add
- Improve (re)start handling.
- Set intial focus more reliably.
- Focus on fullscreen/maximized windows before main.
- Restore window floating geometry on shutdown.
- Improve focus handling.
- Add
priorsetting tofocus_close. When the focused window is closed,
fallback to the last focused window in the workspace. - Add
focus_prioraction. Focus last focused window on workspace.
(Default binding:M-S-a.) - Improve previous focus fallback.
- Fix iconified window focus issue.
- Fix input focus fallback.
- Fix setting focus with EWMH should unmaximize other windows.
- Fix move/resize operation should abort on focus loss.
- Fix
focus_mainissue with iconified/floating windows. - Fix max layout focus issue when closing transients.
- Fix
warp_pointerissues.
- Add
- Improve focus follow mode.
- Fix handling of ConfigureWindow and EWMH requests.
- Fix workspace switching issues.
- Improve status bar.
- Add character sequence for workspace list indicator (+L).
- Add workspace mark options for the workspace indicator (+L).
- Add stack mark options for the stacking indicator (+S).
- Add focus mark options for the focus status indicator (+F).
- Add character sequence for number of windows in workspace (+w) (lowercase).
- Add unfocused options to color bar text and background.
- Add color options for when a window in free mode is focused.
- Fix
bar_actionpiping deadlock issue. - Fix
name_workspaceshould clear on empty string. - Fix refresh bar on
name_workspace. - Set WM_CLASS, WM_NAME and _NET_WM_NAME on the bar window.
- Add
floatingworkspace layout stacking mode.- In floating layout, windows are not tiled and may be freely moved around
and resized. - Add
stack_mark_floatingoption for the stacking indicator
(default:'[~]'). - Add
layout_floatingaction (default: unbound). Directly switch to floating
layout. - Add
floatingstack_modeto thelayoutoption.
- In floating layout, windows are not tiled and may be freely moved around
- Improve max layout.
- Allow windows to be unmaximized/floated in max layout.
- Add
max_layout_maximizeoption to configure default maximized state. - Allow floating windows to remain floating when dragged between regions into
a max layout workspace.
- Improve window handling.
- Add snap behavior when dragging tiled/maximized windows. Prevents
accidentally floating tiled windows. - Add
snap_rangeoption (default 25). Sets the pixel distance a
tiled/maximized window must be dragged (with the pointer) to make it
float and move freely. Set to 0 to unsnap/float immediately. - Add
maximized_unfocusandfullscreen_unfocusoptions. Configures
handling of maximized/fullscreen windows that lose focus. - Add support for ICCCM
WM_CHANGE_STATEClientMessage. Enables applications
to iconify their own windows. - Add support for window gravity. Improves floating window positioning by
applications. - Disable border on maximized windows when
disable_border = always. - Add window titles to
search_win. - Fix maximize handling.
- Fix handling when a window is lost immediately after ReparentWindow.
- Fix Java workaround.
- Add snap behavior when dragging tiled/maximized windows. Prevents
- Improve workspace handling.
- Add
workspace_autorotateoption. When switching workspaces between regions,
automatically "rotate" vertical/horizontal layouts based on RandR rotation
data. - Add
prior_layoutaction. Switch to the last used layout.
(Unbound by default.) - Add optional rotation argument to
regionoption. - Fix ws cycle actions should skip visible workspaces.
- Add
cycle_visibleoption to the man page and example conf.
- Add
- Improve debugging.
- Add
-dcommand-line option to enable debug mode. Enables debug mode
actions and logging to stderr without the need to rebuild with
-DSWM_DEBUG. - Add multi-line support to
debug_toggleoverlay (default: M-d). - Add atom name cache to avoid redundant requests/syncs when printing output.
- Add
- Fix X connection error handling to exit on a failed connection.
- Fix build issues.
- Fix compile error when building against musl.
- Fix build with clang 16 on Linux.
- Improve OpenBSD
pledge(2)support.- Add "wpath" pledge for sparc64 support
- Simplify usage.
- Improve Linux Makefile.
- Improve manual and examples.
- Add details to
modkeyoption in man page. - Add stack modes and window states to man page.
- Fix incorrect key binding for
ws_6in spectrwm_fr.conf. - Fix man page
wmctrl(1)examples. - Fix
iostat(8)issue in example baraction.sh script for OpenBSD. - Update man page note regarding
dmenu(1)Xft support. - Update example spectrwm.conf.
- Update
keyboard_mappingexample configuration files. - Update html manual.
- Add details to
spectrwm 3.4.1 released!
spectrwm 3.4.1
Release on Jun 25, 2020
- Fix always_raise mapping issue.
- Fix _NET_CURRENT_DESKTOP should be updated on ws_next_move/ws_prev_move.
- Fix focus redirect for transient windows that are about to map.
- Fix manual focus should not be affected by pointer on (un)grab.
- Add java detection for JetBrains windows.
- Remove _NET_WM_STATE on withdrawn windows as advised by EWMH spec.
- Add information to man page about program call execution.
spectrwm 3.4.0 released!
spectrwm 3.4.0
Release on Jun 17, 2020
- Add optional startup parameters:
- -c file - Specify a configuration file to load instead of scanning for one.
- -v - Print version and exit.
- Add new
restart_of_dayaction. (Unbound by default.)
(Same as restart but configuration file is loaded in full.) - Improve startup error handling.
- Fix input focus issues.
- Fix max layout 'flickering' issue when
focus_mode = follow. - Fix
ws_next_moveandws_prev_move. - Fix withdrawn window handling.
- Fix focus issue when moving transient (and related) windows between workspaces.
- Fix maximized windows sometimes unmaximize on workspace switch.
- Fix
SIGHUPrestart. - Fix transient window crossing issue on focus/swap next/prev actions.
- Fix border color issue when clicking to focus a window on an unfocused region.
- Fix
keyboard_mappingfallback issue. - Fix width calculation of Xft glyphs.
(Fixes the (dis)appearing space when switching workspaces.) - Increase bar hard limits to better accomodate complex markup sequences.
- Add workaround to man page for OSs ignoring
LD_PRELOAD. - Add some notes to man page and fix a warning.
- Add missing options to example spectrwm.conf.
- Update spectrwm_fr.conf
- linux: Add example baraction.sh script.
- linux: Accept user-provided pkg-config command.
- linux: Install examples.
spectrwm 3.3.0 released!
spectrwm 3.3.0
Released on Dec 19, 2019
- Add new bar text markup sequences for multiple colors/fonts/sections.
- Add new
bar_font_puaoption to assign a font (such as an icon font) to the Unicode Private Use Area (U+E000 -> U+F8FF). - Extend
disable_borderoption withalways. - Add support for XDG Base Directory Specification.
- Add OpenBSD pledge(2) support.
- Enable xinput2 on OpenBSD.
- Enable travis.
- Fix keysym binding issue with multiple keyboard layouts.
- Fix buffer overflow in
bar_strlcat_esc. - Fix infinite loop due to unsigned integer overflow.
- Fix cygwin compile issues.
- Fix NetBSD Makefile.
- Bunch of statical analyzer fixes.
- Bunch of minor fixes.
spectrwm 3.2.0 released!
spectrwm 3.2.0
Released on Sep 7, 2018
- Add new '+L' bar_format sequence to add a workspace list indicator to the bar.
- Add new 'workspace_indicator' option to configure the workspace indicator.
- Add new 'layout_vertical','layout_horizontal' and 'layout_max' actions. (Unbound by default.)
- Add new 'ws_empty_move' action. (Unbound by default.)
- Add support for high screen depth when creating frame/bar windows. (Compositing manager alpha transparency now works!)
- Add check to adapt move/resize update rate to the refresh rate of the active display(s).
- Add 'max' alias for the layout option value 'fullscreen' for consistency.
- Add CHANGELOG.md
- Fix warp_pointer issue when Coordinate Transformation Matrix is used. (Currently available on Linux and FreeBSD only.)
- Fix focus bar color on (re)start/screenchange.
- Fix libswmhack causing issues such as deadlocks with some programs.
- Fix config file parsing on musl libc.
- Fix slight pointer jump on move action.
- Fix segfault with missing FontSet charsets.
- Fix mdoc compliance.
spectrwm 3.1.0 released!
Major changes:
- Add +R for region index to bar formatting.
- Add new bar_color_selected and bar_font_color_selected options.
- Add new 'ws_empty' action.
- Enable padding in the bar_format using '_' character
- Handle MappingNotify during startup.
- Reset SIGPIPE before execvp().
- Correct size for WM_STATE
This release also fixes a bunch of bugs, linux build and man page nits.