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
Permalink
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
netbsd
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
.gitattributes
.gitignore Use version.h on osx and more files in .gitignore. Dec 21, 2012
CHANGELOG.md CHANGELOG: Add hystorical releases Sep 10, 2018
LICENSE.md
Makefile Disable xinput2 for all but Linux and FreeBSD. Sep 7, 2018
README.md Add reference to wiki Installation guide in README.md. Aug 29, 2018
baraction.sh Whitespace May 9, 2018
buildver.sh give up on printing tag Apr 14, 2016
initscreen.sh
release.sh rename scrotwm to spectrwm Feb 15, 2012
screenshot.sh kill cvs tags Oct 25, 2011
spectrwm.1 Extend disable_border option with `always`. Jan 10, 2019
spectrwm.c
spectrwm.conf
spectrwm.html
spectrwm_cz.conf
spectrwm_es.conf Add missing binds to keymapping files. Feb 27, 2015
spectrwm_fr.conf
spectrwm_fr_ch.conf
spectrwm_se.conf Add missing binds to keymapping files. Feb 27, 2015
spectrwm_us.conf
version.h Prepare for release 3.2.0. Sep 7, 2018

README.md

spectrwm

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

Documentation

Click here for current man page

License

spectrwm is ISC licensed unless otherwise specified in individual files.

Screenshots

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.