Skip to content
A small dynamic tiling window manager for X11.
Branch: master
Clone or download
LordReg Tweak get_binding_keycode() fix.
Bail the loop if the unsigned counter gets reduced modulo to 0.
Latest commit e2c42a9 Jan 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
freebsd Add initial pledge(2) support on OpenBSD (#217) Jan 7, 2019
lib Fix some styling. Sep 7, 2018
linux Add initial pledge(2) support on OpenBSD (#217) Jan 7, 2019
osx Add initial pledge(2) support on OpenBSD (#217) Jan 7, 2019
outdated_man_pages retire man pages that are way outdated and add html target for englis… May 2, 2016
.gitignore Use version.h on osx and more files in .gitignore. Dec 21, 2012 CHANGELOG: Add hystorical releases Sep 10, 2018
Makefile Disable xinput2 for all but Linux and FreeBSD. Sep 7, 2018 Add reference to wiki Installation guide in Aug 29, 2018 Whitespace May 9, 2018 give up on printing tag Apr 14, 2016 rename scrotwm to spectrwm Feb 15, 2012 kill cvs tags Oct 25, 2011
spectrwm.1 Extend disable_border option with `always`. Jan 10, 2019
spectrwm_es.conf Add missing binds to keymapping files. Feb 27, 2015
spectrwm_se.conf Add missing binds to keymapping files. Feb 27, 2015
version.h Prepare for release 3.2.0. Sep 7, 2018


spectrwm is a small dynamic tiling and reparenting 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 is 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 is released under the ISC license. Patches can be accepted provided they are ISC licensed as well.

Building and installation

Click here for current installation guide

Feedback and questions

You can and come chat with us on IRC. We use OFTC channel #spectrwm.

Major features

  • Dynamic RandR support (multi-head)
  • Navigation anywhere on all screens with either the keyboard or mouse
  • Customizable status bar
  • Human readable configuration file
  • Restartable without losing state
  • Quick launch menu
  • Many screen layouts possible with a few simple key strokes
  • Windows can be added or removed from master area
  • Windows can be moved to any workspace or within a region
  • Resizable master area
  • Move/resize floating windows
  • Drag-to-float
  • Extended Window Manager Hints (EWMH) Support
  • Configureable tiling
  • Adjustable tile gap allows for a true one pixel border.
  • Customizable colors and border width.
  • User definable regions
  • User definable modkey & key bindings
  • User definable quirk bindings
  • User definable key bindings to launch applications
  • Multi OS support (*BSD, Linux, OSX, Windows/cygwin)
  • Reparenting window manager


Click here for current man page


spectrwm is ISC licensed unless otherwise specified in individual files.


Vertical stack

Horizontal stack

Horizontal stack

Vertical stack with floater and extra window in master area

mplayer, resized and moved

You can’t perform that action at this time.