Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Basic Window Manager

basic_wm is a simple reparenting, non-compositing X window manager that demonstrates how to implement the fundamental functionality of a window manager:

  • Managing the life cycle of windows
  • Reparenting windows
  • Basic window operations (moving, resizing, closing)

It serves as a pedagogical example for my series of articles, How X Window Managers Work, And How To Write One.

Building and Running

To build this example window manager, you will need:

To run and test it, you will need:

  • Xephyr
  • xinit
  • Random X utilities such as xclock, xeyes, and xterm to play with

On Ubuntu/Debian, you can install these dependencies with:

sudo apt-get install \
    build-essential libx11-dev libgoogle-glog-dev \
    xserver-xephyr xinit x11-apps xterm

On Fedora/CentOS, you can install these with:

sudo yum install \
    make gcc gcc-c++ libX11-devel glog-devel \
    xorg-x11-server-Xephyr xorg-x11-apps xterm

On Arch Linux, you can install these with:

yaourt -S base-devel libx11 google-glog \
    xorg-server-xephyr xorg-xinit xorg-xclock xorg-xeyes xterm

Consult your own distro's documentation for how to install these.

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: Screenshot

Usage

Supported keyboard shortcuts:

  • Alt + Left Click: Move window
  • Alt + Right Click: Resize window
  • Alt + F4: Close window
  • Alt + Tab: Switch window

About

An example basic X11 window manager.

Topics

Resources

Releases

No releases published
You can’t perform that action at this time.