| Name | Size |
|---|---|
| .gitignore | 18B |
| LICENSE | 1050B |
| Makefile | 683B |
| README.md | 2080B |
| config.def.h | 1778B |
| xiwm-session | 110B |
| xiwm.c | 20809B |
| xiwm.desktop | 101B |
xiwm
This is a simple window manager I hacked together in my free time. It is based on dwm's code, but the functionality is more influenced by openbox.
Features
- like dwm
- extremely small (only ~1000 lines of C, roughly half of dwm)
- supports tiling (see below for details)
- configured by editing the source code
- like openbox
- reads
~/.config/xiwm/environmentand~/.config/xiwm/autostart.sh - supports multiple desktops (instead of dwm's tags)
- works with external panels/bars (I use lxpanel)
- reads
- no multi monitor support
Default key bindings
A-C-tlaunch terminalW-rlaunch dmenuA-Tabfocus next windowA-S-Tabfocus previous windowA-lincrease left column widthA-hdecrease left column widthA-F4close windowA-S-qquitW-F1go to desktop 1W-F2go to desktop 2W-F3go to desktop 3A-C-Rightgo to next desktopA-C-Leftgo to previous desktopA-S-Rightmove window to next desktopA-S-Leftmove window to previous desktopA-Downset window to floating modeA-Upmaximize windowA-Leftmove window to left columnA-Rightmove window to right column
Layout concept
With floating window managers it is simple to control where an individual window is, it is hard to control general properties such as avoiding overlap. With tiling window managers it is simple to control exactly those general properties. The flipside is that it gets much harder to position an individual window.
I usually have all my windows maximized. Just sometimes I want to position two windows side by side. This works reasonably well with floating window managers, but I wanted to see if I could improve on that.
With xiwm, all windows start out maximized. However, you can position them on the left or right. When you focus one of the positioned windows, all of them are raised.
I am not sure yet if the positioning should influence the tab order. Still experimenting.