Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jichu4n/basic_wm

Repository files navigation

Basic Window Manager

Build Status

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
  • Some X utilities such as xclock, xeyes, and xterm to play with

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

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /