Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.


"monsterwm's bastard child" or "not the wm your desktop needs, but the one it deserves"

FrankenWM is a dynamic tiling WM (comparable to dwm or Awesome), featuring the v-stack, b-stack, grid, fibonacci, dualstack, equal and monocle layouts out of the box. If you want to, you can add gaps between the windows as well.

It was once based on monsterwm but has undergone many greater changes including adding pieces from other WMs (hence the name) and porting all sorts of stuff from Xlib to XCB. Many of the original monsterwm patches have been ported as well.

All settings must be set at compile time by editing config.h and it does not feature a status bar (but supports leaving preconfigured space for one). I prepared a few scripts for different bars here.


Note: If you are on Arch Linux, you can use the AUR.

You need xcb and xcb-utils then, copy config.def.h as config.h and edit to suit your needs. Build and install.

$ cp config.def.h config.h
$ $EDITOR config.h
$ make
# make clean install

The packages in Arch Linux needed for example would be libxcb xcb-util xcb-util-wm xcb-util-keysyms


Configuration is done by editing config.h before compiling FrankenWM.


I took the time to write a really nice and pretty manpage (man frankenwm, or man ./frankenwm.1 if you want to read it before installing) covering the tiling modes and all of the default shortcuts.


You can report bugs and request features here: FrankenWM GitHub issues or ArchLinux Forums


Parts of FrankenWM come from:

Inspiration from: