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.
- 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/environment
and~/.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
A-C-t
launch terminalW-r
launch dmenuA-Tab
focus next windowA-S-Tab
focus previous windowA-l
increase left column widthA-h
decrease left column widthA-F4
close windowA-S-q
quitW-F1
go to desktop 1W-F2
go to desktop 2W-F3
go to desktop 3A-C-Right
go to next desktopA-C-Left
go to previous desktopA-S-Right
move window to next desktopA-S-Left
move window to previous desktopA-Down
set window to floating modeA-Up
maximize windowA-Left
move window to left columnA-Right
move window to right column
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.