./wm/spectrwm, Small dynamic tiling window manager for X11

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.7.0, Package name: spectrwm-3.7.0, Maintainer: pkgsrc-users

Spectrwm is a small dynamic tiling window manager for X11. It tries
to stay out of the way so that valuable screen real estate can be
used for much more important stuff. It has sane defaults and does
not require one to learn a language to do any configuration. It
was written by hackers for hackers and it strives to be small,
compact and fast.

It was largely inspired by xmonad and dwm. Both are fine products
but suffer from things like: crazy-unportable-language-syndrome,
silly defaults, asymmetrical window layout, "how hard can it be?"
and good old NIH. Nevertheless dwm was a phenomenal resource and
many good ideas and code was borrowed from it. On the other hand
xmonad has great defaults, key bindings and xinerama support but
is crippled by not being written in C.

Spectrwm is a beautiful pearl! For it too, was created by grinding
irritation. Nothing is a bigger waste of time than moving windows
around until they are the right size-ish or having just about any
relevant key combination being eaten for some task one never needs.
The path of agony is too long to quote and in classical OpenBSD
fashion (put up, or hack up) a brand new window manager was whooped
up to serve no other purpose than to obey its masters. It was
written by Marco Peereboom & Ryan Thomas McBride and it is released
under the ISC license.


Required to run:
[fonts/Xft2] [x11/xcursor] [x11/liboldXrandr] [x11/dmenu] [x11/xcb-util] [x11/xcb-util-keysyms] [x11/xcb-util-wm]

Required to build:
[pkgtools/x11-links] [x11/xcb-proto] [x11/fixesproto4] [pkgtools/cwrappers] [x11/xorgproto]

Master sites:

Filesize: 209.094 KB

Version history: (Expand)


CVS history: (Expand)


   2025-09-05 09:52:15 by pin | Files touched by this commit (2) | Package updated
Log message: wm/spectrwm: update to 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_layout action (default: M-backslash). Toggle centering of the master area. Add center_adaptive option to only center when centering does not create empty space. Add center_autobalance option to automatically balance the master/stacking areas when toggling centered mode. Add center_noautostack option to disable automatically adding an extra stack when centering a layout with a single stack. Add center_nowrap option 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 configuration reload. On reload, the configuration is reloaded without restarting and the bar(s) are reinitialized along with bar_action (if used). Add reload action (default: unbound). Initiates a reload. Add SIGUSR1 signal handling to initiate a reload. Improve uniconify. Add uniconify_order option to set the window order in the uniconify menu. Add uniconify_quick action (default: unbound). Uniconify the most recently iconified window. Improve EWMH support. Add support for _NET_WM_STATE_FOCUSED. Improve _NET_WM_DESKTOP request handling. Improve _NET_WM_ALLOWED_ACTIONS support. Fix _NET_WM_ALLOWED_ACTIONS property change issue. Fix _NET_DESKTOP_NAMES handling. Add new quirks. Add NOTILE quirk to disallow windows from being tiled. Add IGNOREURGENT quirk to ignore the urgency hint on windows. Add NOFOCUSPOINTER quirk to disable click-to-focus on windows. Increase the maximum workspace_limit to 100. Note that bindings for workspaces 23 and above are unbound by default. Add move_step and resize_step options to configure the pixel amount to move/resize a window when using the respective action bindings. Add bar_padding_horizontal and bar_padding_vertical options to adjust the padding of bar text. Add disable_padding option to disable region padding when there is a single window. Improve transient window stacking to prevent dialogs from getting buried. Change the restart_of_day action to ignore autorun entries. 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. 
   2024-07-29 11:49:02 by pin | Files touched by this commit (2) | Package updated
Log message: wm/spectrwm: update to 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. 
   2023-11-25 22:59:21 by pin | Files touched by this commit (3) | Package updated
Log message: wm/spectrwm: update to 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. 
   2023-11-12 14:24:43 by Thomas Klausner | Files touched by this commit (2569)
Log message: *: revebump for new brotli option for freetype2 Addresses PR 57693 
   2023-11-03 09:14:11 by pin | Files touched by this commit (3) | Package updated
Log message: wm/spectrwm: update to 3.5.0 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_distance` 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. 
   2023-01-29 22:18:34 by Ryo ONODERA | Files touched by this commit (2526)
Log message: *: Recursive revbup from graphics/freetype2 
   2021-10-26 13:25:22 by Nia Alarie | Files touched by this commit (106)
Log message: wm: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes 
   2021-10-07 17:05:15 by Nia Alarie | Files touched by this commit (106)
Log message: wm: Remove SHA1 hashes for distfiles