Home

Awesome

USELESS Window Manager Experiments

Actually This is not a window manager :) . Hopefully one day it will be a minimalistic window manager.

It contains just experiments on xlib development.

Actually you can find experiments on:

  1. Basic event handling
  2. Basic keyboard handling
  3. Window creation
  4. Setting color background
  5. Showing Text
  6. Setting root window background image
  7. Decorating window.

Dependencies

In order to compile this program, you need the following packages installed:

To run correctly it also needs the following program installed:

(since it is the only program launched by this useless window manager)

If you want to use Xephyr to test the window manager you need the package:

installed.

Compile and launch

    cd src
    make

You'll find a release-TAG folder with the binary inside
And then you can launch it in two different ways:

Using Xephyr

The first is using xephyr, a tool that launch a X server instance in a window. After installing it (check your distro documentation) type

    Xephyr -screen 1024x768 -br :1

Where -screen XxY is the desired resolution. And then you can launch the Window Manager with the following command:

    DISPLAY=:1 ./uwm [ background ]

This method is very useful if you want to debug the window manager.

Launching Full screen

The second method is just launching a new server instance, using the following command:

    xinit ./uwm [ background ] -- :1

and then you can move between X instances using Ctrl + Alt + Fx

[ background ] is optional, and it specifies the background image. If you don't specify it, a default color will be used.

(Using that command a new X instance will be launched, and you don't need to close the running server)

Tested image formats:

Please notice that the background argument is optional.

Usage instruction

There are very few thing that you can do using this useless window manager, here a list of what you can do:

Make sure to have a 30x30 default.bmp file in the main project folder (if you downloaded from github there should be one). Also make sure that this line in src/definitions.h is up to date with the correct path of the icons:

#define ICONS_BASE_PATH "../../"

TODO