Skip to content

Releases: conformal/spectrwm

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

spectrwm 3.0.0 released!

03 May 19:15
Compare
Choose a tag to compare

We are proud to release spectrwm 3.0.0. Only one major new feature was added this release that should make spectrwm less quirky when using poorly written, old X11 and java applications. With the addition of reparenting spectrwm is now all grown up! In addition, spectrwm is now nearly ICCCM and EWMH compliant.

Minor features/enhancements:

  • Add Online manual
  • Add fullscreen_toggle action (_NET_WM_STATE_FULLSCREEN)
  • Send window to next/previous regions workspace
  • Add support for _NET_REQUEST_FRAME_EXTENTS

As usual, a bunch of little, and not always obvious, fixes went in as well. See commit logs for details.

Enjoy!

Team spectrwm