BiscuitWM

Weirdly delectable

BiscuitWM is an X11 window manager based on the Python version of TinyWM by Nick Welch and xpywm by Hiroyuki Ohsaki.

The intent of this window manager project is largely to expand my understanding of the X11 libraries via Python. However, it should be good for some basic use cases such as lightweight virtual machines or a Raspberry Pi.

WARNING: This project is still in alpha. It is not recommended to run BiscuitWM on a production machine without using Xephyr to run an embedded X session!


Quick Start Guide

System requirements

In terms of hardware requirements, as long as it could run Python and your applications (probably a Raspberry Pi is more than good enough). As for the operating system, perhaps Linux (specifically any Debian-based distribution) should suffice.

Prerequisites

You should have the following packages installed on your system:

You also need the following Python libraries:

In Debian/Ubuntu, use apt or apt-get to add the relevant packages. After install these packages, use pip to install the relevant Python libraries.

sudo apt update
sudo apt install python3 python3-pip

python3 -m pip install python-xlib x11util perlcompat

Download

Use git to clone the project's GitHub repository onto your system, or download the ZIP archive from GitHub (which then has the extra step of extracting the archive).

Install

Open a terminal in the project directory, and run the install.sh script as sudo. This will copy the source file, a shell script that runs the source file via Python, and the session files to the system directories.

sudo sh scripts/biscuitwm-install.sh

The project files include an uninstall script that removes the aforementioned copied files.

sudo sh scripts/biscuitwm-uninstall.sh

User Guide

Hovering your cursor over a window will automatically raise it and make it the window with input focus.

Keyboard shortcuts

Moving windows

Resizing windows

Multitasking

Launcher

Session

Configuration file

You can configure BiscuitWM through a JSON file stored in /etc/biscuitwm. Some things that could be customised include window placement behaviour, the deskbar (and the clock), rounded desktop corners, and window borders.

Future changes

Future iterations to BiscuitWM will add titlebars to windows, and may turn hover-to-raise behaviour into an optional feature.


Acknowledgements


Links