Wmderland is a modern, minimal Tiling Window Manager written in C/C++ with Xlib
- A lightweight i3, written from scratch
- An easy-to-use config system (example)
- Stable, simple and maintainable
Documentation available at its wiki page.
A versitile window manager which is shipped with i3bar, has a nice tiling alrogithm, several window layout modes (default, stacking, tabbed) and it is very stable. However, I think certain areas can be further improved:
- config system is too complicated
- there are many features that I've rarely used
- ~44k lines of C code, which is a bit hard to trace and maintain
Wmderland, while derives from i3, is built with a different philosophy in mind. The plan for Wmderland is to become a modern but minimal tiling window manager which:
- follows Unix philosophy - Do one thing and do it well
- has an easy-to-use config
- tiling behaviors are similar to that of i3
- written in C++ OOP and Xlib. Only ~3k lines of C++11 code, hopefully it will be a lot easier to maintain.
- Tree-based horizontal and vertical tiling (like i3)
- Gaps and borders (like i3-gaps)
- Statically allocated workspaces (i3 has dynamically allocated workspaces)
- Smart floating (dialog windows will be floating by default, their pos/size will be cached)
- Easy-to-use config with runtime reload support
- Supports a subset of EWMH, see
src/properties.cc
- Error recovery mechanism
- Has a tiny client which can interact/control Wmderland
- Ability to resize tiling windows based on percentage (#16, #18)
- Web browser windows should go fullscreen as video goes fullscreen
- Window title bars
- Rounded corners
- Two borders
- g++ (requires C++11)
- CMake
- Xlib headers
- Optional - glog (Google's C++ logging library)
- Build and install project
$ git clone https://github.com/aesophor/Wmderland.git
$ cd Wmderland
$ ./build.sh -i
- Copy the config file (IMPORTANT)
$ mkdir -p ~/.config/Wmderland
$ cp example/config ~/.config/Wmderland/.
- If not using a Display Manager, add this to your ~/.xinitrc and execute
startx
exec Wmderland
- Markus Elfring for giving me lots of helpful advice
- Airblader's i3wm
- suckless.org's dwm
- jichu4n's basic_wm
- baskerville's bspwm
- mil's simple_wm
- JLErvin's berry
- Mr messyhair's eveningwm
Available under the MIT License