Skip to content

Releases: conformal/spectrwm

spectrwm 3.6.0 released!

10 Jul 11:23
Compare
Choose a tag to compare

spectrwm 3.6.0

Released on Jun 10, 2024

Adds some new features, removes limits and fixes bugs.

  • Improve focus_mode to 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 BELOW quirk.
    • Add ICONIFY quirk.
    • Add MAXIMIZE quirk.
  • Add new spawn_flags option to adjust program spawn entry settings.
  • Add new layout_order option to customize the layout sequence used by the
    cycle_layout action.
  • Improve bar font handling.
    • Remove the bar_font limit of 10 fonts when using Xft.
    • Extend bar_format markup sequences to support font indexes above 9.
  • Improve bar color handling.
    • Remove the 10 color limit on options that accept a color list.
    • Extend bar_format markup 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_urgent search issue.
  • Improve EWMH handling.
    • Add special handling of _NET_WM_WINDOW_TYPE_NOTIFICATION windows.
    • Fix warp_pointer should not apply to _NET_WM_MOVERESIZE.
    • Fix _NET_ACTIVE_WINDOW request handling.
    • Fix _NET_DESKTOP_VIEWPORTS.
    • Fix EWMH _NET_WM_DESKTOP requests should not bypass workspace_limit.
  • Improve libswmhack.so.
    • Add XCB support.
    • Remove unneeded compile time linking with libX11.
    • Improve symbol lookup.
  • Add new bar_workspace_limit option 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 layout option to floating.
  • Fix window mapping issue when swapping a maximized window.
  • Fix swap_main issue.
  • Fix listing of empty workspaces in bar_format +U and +L.
  • Fix escape handling of + in bar_action script 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 libbsd instead.
  • Improve included spectrwm.desktop and move it to the main directory.
  • Improve man page.
  • Improve CHANGELOG and README.

spectrwm 3.5.1 released!

25 Nov 10:16
Compare
Choose a tag to compare

spectrwm 3.5.1

Released on Nov 25, 2023

Fixes NetBSD support and a few minor issues.

  • Fix bar_at_bottom bottom gap when bar_border_width > 0.
  • Fix maximize new windows in max layout when max_layout_maximize = 1.
  • Fix autorun option and WS quirk should accept a value of -1 as stated
    in the manual.
  • Fix bar_color_free and bar_font_color_free options.
  • 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!

22 Oct 08:33
Compare
Choose a tag to compare

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_toggle is convenient for
      this purpose.
    • Add free_toggle action (default: M-S-grave). Toggle focused window
      between workspace mode and free mode.
    • Add focus_free action (default: M-grave). Switch focus to/from windows in
      free mode, if any.
    • Add related color and focus mark options.
  • 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_raise option (default: 1 (enabled)). Raises stacking
      priority when clicking on a window.
    • Add below_toggle action (default: M-S-t). Toggles below state on a
      focused window to keep it below other windows. raise can be used to
      temporarily bring a window above all others.
    • Fix raise and always_raise stacking issues.
    • Fix follow mode stacking issues.
    • Fix stacking order issues.
    • Restore stacking order after leaving fullscreen/maximized state.
  • Workaround application issues related to ICCCM 6.3 button grabs.
    • If X Input Extension >= 2.1 is available, handle button bindings with the
      REPLAY flag passively, without grabs. For other button bindings, establish
      grabs on root.
    • Otherwise, for compatibility, establish all button binding grabs directly on
      client windows.
  • 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_font fails 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_font program variable substitution should not include fallbacks.
  • Improve window mapping.
    • Add maximize_hide_other and fullscreen_hide_other options. 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.
  • 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 prior setting to focus_close. When the focused window is closed,
      fallback to the last focused window in the workspace.
    • Add focus_prior action. 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_main issue with iconified/floating windows.
    • Fix max layout focus issue when closing transients.
    • Fix warp_pointer issues.
  • 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_action piping deadlock issue.
    • Fix name_workspace should clear on empty string.
    • Fix refresh bar on name_workspace.
    • Set WM_CLASS, WM_NAME and _NET_WM_NAME on the bar window.
  • Add floating workspace layout stacking mode.
    • In floating layout, windows are not tiled and may be freely moved around
      and resized.
    • Add stack_mark_floating option for the stacking indicator
      (default: '[~]').
    • Add layout_floating action (default: unbound). Directly switch to floating
      layout.
    • Add floating stack_mode to the layout option.
  • Improve max layout.
    • Allow windows to be unmaximized/floated in max layout.
    • Add max_layout_maximize option 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_range option (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_unfocus and fullscreen_unfocus options. Configures
      handling of maximized/fullscreen windows that lose focus.
    • Add support for ICCCM WM_CHANGE_STATE ClientMessage. 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.
  • Improve workspace handling.
    • Add workspace_autorotate option. When switching workspaces between regions,
      automatically "rotate" vertical/horizontal layouts based on RandR rotation
      data.
    • Add prior_layout action. Switch to the last used layout.
      (Unbound by default.)
    • Add optional rotation argument to region option.
    • Fix ws cycle actions should skip visible workspaces.
    • Add cycle_visible option to the man page and example conf.
  • Improve debugging.
    • Add -d command-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_toggle overlay (default: M-d).
    • Add atom name cache to avoid redundant requests/syncs when printing output.
  • 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 modkey option in man page.
    • Add stack modes and window states to man page.
    • Fix incorrect key binding for ws_6 in 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_mapping example configuration files.
    • Update html manual.

spectrwm 3.4.1 released!

25 Jun 11:17
Compare
Choose a tag to compare

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!

18 Jun 16:04
Compare
Choose a tag to compare

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_day action. (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_move and ws_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 SIGHUP restart.
  • 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_mapping fallback 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!

19 Dec 15:18
Compare
Choose a tag to compare

spectrwm 3.3.0

Released on Dec 19, 2019

  • Add new bar text markup sequences for multiple colors/fonts/sections.
  • Add new bar_font_pua option to assign a font (such as an icon font) to the Unicode Private Use Area (U+E000 -> U+F8FF).
  • Extend disable_border option with always.
  • 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!

07 Sep 19:34
Compare
Choose a tag to compare

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!

03 Oct 18:44
Compare
Choose a tag to compare

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.

spectrwm 3.0.2 released!

23 May 17:28
Compare
Choose a tag to compare

Quick patch release that addresses some fallout from going full reparenting.

  • Ensure iconic windows stay iconic when reparenting.
  • Fix workspace cleanup on RandR screenchange. Fixes #127 and #120

spectrwm 3.0.1 released

05 May 14:19
Compare
Choose a tag to compare
  • Fix makefile for non-Bitrig OS'
  • Redraw the focus window frame when changing regions with the pointer #126
  • Prepend SWM_LIB to LD_PRELOAD instead of clobbering #124