basic_wm is a simple reparenting, non-compositing X window manager that demonstrates how to implement the fundamental functionality of a window manager:
It serves as a pedagogical example for my series of articles, How X Window Managers Work, And How To Write One.
To build this example window manager, you will need:
To run and test it, you will need:
xinit
xclock
, xeyes
, and xterm
to play withOn Debian / Ubuntu:
sudo apt-get install \
build-essential pkg-config libx11-dev libgoogle-glog-dev \
xserver-xephyr xinit x11-apps xterm
On Fedora:
sudo yum install \
make gcc gcc-c++ libX11-devel glog-devel \
xorg-x11-server-Xephyr xorg-x11-apps xterm
On Arch Linux:
sudo pacman -S base-devel libx11 google-glog \
xorg-server-xephyr xorg-xinit xorg-xclock xorg-xeyes xterm
Once you have all the dependencies, building and running it is as simple as:
./build_and_run.sh
This will launch a simple Xephyr session like in the following screenshot:
Supported keyboard shortcuts: