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:
- Basic event handling
- Basic keyboard handling
- Window creation
- Setting color background
- Showing Text
- Setting root window background image
- Decorating window.
In order to compile this program, you need the following packages installed:
- libx11-dev
- libimlib2-dev
To run correctly it also needs the following program installed:
- xterm
(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:
- xserver-xephyr (ubuntu)
installed.
cd src
make
You'll find a release-TAG folder with the binary inside
And then you can launch it in two different ways:
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.
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:
- jpg
Please notice that the background argument is optional.
There are very few thing that you can do using this useless window manager, here a list of what you can do:
- Press 1 to launch xterm (and with xterm you can launch other programs)
- To close a program just right click on program window decoration.
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 "../../"
- Basic configuration handling (background color/image and default terminal)
- Scale background image
- Finish work on text drawing functions
- Add better argument parsing.