Skip to content


Subversion checkout URL

You can clone with
Download ZIP
snapwm is an easy to configure, dynamic, tiling window manager. Built on dminiwm with a desktop switcher, info bar and reloadable rc file.
C Clean Makefile
Tree: 37bbc5b6d6

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


it's minimal and dynamic

I started this from catwm 31/12/10 ( ) See snapwm.c or config.h for thanks and licensing. Screenshots and ramblings/updates at


snapwm is a very minimal and lightweight dynamic tiling window manager.


It allows the "normal" method of tiling window managers(with the new window as the master) and with the new window opened at the bottom of the stack(like dwm's attach_aside)

There's vertical tiling mode:

|        | W |
|        |___|
| Master |   |
|        |___|
|        |   |

Horizontal tiling mode:

|           |
|  Master   |
| W |   |   |

Grid tiling mode:

|      | W  |
|Master|    |
|      |    |

Stacking mode:

| ___       |
||___|      |
|     ____  |
|    |____| |

Fullscreen mode(which you'll know when you see it)

All accessible with keyboard shortcuts defined in the config.h file.

  • The window W at the top of the stack can be resized on a per desktop basis.
  • Changing a tiling mode or window size on one desktop doesn't affect the other desktops.
  • There is a bar with a desktop switcher, space to show the focused window's name and space to show external text.
  • The rc file is reloadable 'on the run'.

Recent Changes


  • Added a stacking window mode


There are more options in the config file than the original catwm.

  • Fixed the window manager crashing on a bad window error.
  • Fixed the keyboard shortcuts not working if numlock was on.
  • Added some functions.
  • Added an option to focus the window the mouse just moved to.
  • Fixed a window being destroyed on another desktop creating ghost windows.
  • Added ability to resize the window on the top of the stack
  • Added having applications open on specified desktop
  • Added a click to focus option
  • Added ability to change back to last opened desktop.
  • Added bar with desktop switcher and statusbar.
  • Colours and font are read from an rc file and can be updated with a keyboard shortcut.
  • Text (e.g. conky) can be piped into the status bar from .xinitrc.
  • Unfocused windows have an alpha value so can be transparent if e.g. cairo-compmgr is used
  • Lots of things can be changed in the running wm from the rc file.
    • e.g. Whether the bar is at the top or bottom
    • font, colours, border width, default mode etc (see the sample rc file).
  • In the rc file, lines starting with a hash are ignored.
  • Desktop switcher can show number of open windows on unfocused desktops and in fullscreen mode
  • Option to show number of windows open in the desktop switcher in the config and rc file
  • Clicking on the current desktop in the switcher will focus the next window
  • Added option in the config and rc files for opening new window at the top or bottom of the stack when using attach aside


Need Xlib, then:

Copy the rc file to $HOME and edit it to suit.
Edit the config.h.def file to suit your needs and
    save it as config.h making sure to add
    the correct path for the rc file.

$ make
# make install
$ make clean


[ * No bugs for the moment ;) (I mean, no importants bugs ;)]


  • Improve font handling
  • Add commands and keyboard shortcuts to rc file.
Something went wrong with that request. Please try again.