# FrankenWM

FrankenWM is a dynamic tiling window manager, comparable to dwm or awesome. This means there are a number of predefined layouts that are used to tile the windows. The source code is based on monsterwm-xcb, but includes a lot of bugfixes and additonal features like extensive runtime configuration, a scratchpad window, window minimizing, floating control via keyboard and currently 13 different tiling layouts.

## Installation

You can get FrankenWM by installing the frankenwm-gitAUR package or directly from Github. Any Configuration has to be done at compile time, so you might want to have a look at the section below.

### AUR

When using the AUR-version, you can supply you own `config.h` which whill be used instead of the default config.

### Git

Note: Compiling manually requires you to get the dependencies needed yourself, which are `libxcb xcb-util xcb-util-wm xcb-util-keysyms` (as well as `make` and `gcc`).

When using the Git-version, you will need to copy `config.def.h` to `config.h` and make the modifications you need before compiling FrankenWM. Then you can run `make` and `sudo make install` to install the binaries and manpage.

### Launching FrankenWM

FrankenWM is usually started using the `.xinitrc`, either manually via `startx` or automatically using a display manager like `slim` or `lightdm`.

## Configuration

Configuration is done at compile time by edititing `config.h`. There are lots of comments in the default config (`config.def.h`) which explain what the settings are doing.

## Usage

The basic usage includes opening a terminal (`Meta+Enter`), opening dmenu (`Meta+r`) and closing windows (`Meta+c`). There is a complete, sorted list of the default keybinds and explanations of the tiling layouts in the manpage, which you can view with `man ./frankenwm.1` before install, or `man frankenwm` after install.

## Panels

FrankenWM does not come with a panel included, but gives you the possibility to leave space either at the top or bottom for one, like `conky` or `dzen`. There are a couple of settings in the config to configure this space.

If you want to use FrankenWM's status in your bar, you can pipe FrankenWM to a shell script to parse the output and pipe it to a bar. Sample scripts to accomplish this with a few different bar are located here.

## Troubleshooting

### I do not see anything

This is normal behaviour, as FrankenWM does not come with a bar included or a desktop background, so after running `frankenwm` without anything else, you will probably see a black screen. See Panels above for information on how to add a panel to your desktop. Wallpapers can be set by using software like xsetroot, feh or hsetroot.

### I cannot open a terminal/menu

Have a look at the `config.h` used to build your currently running version of FrankenWM, which is located in the build directory. Make sure that both the shortcut to run the `termcmd`/`menucmd` command and the `termcmd`/`menucmd` itself are set properly to start an installed terminal/menu.

Category:

- Dynamic WMs