Minx API Documentation

Minx is not really a tiling window manager. Rather it is a library that allows you to write your own tiling window manager. However, in case you don't want to write your own window manager, it provides a default configuration so that it can be used with minimal effort. Minx also tries to make it easy to change the defaults to suit your tastes.

However, since it is impossible to anticipate everyone's preferences, Minx provides the necessary infrastructure to radically alter its behaviour. These pages document the various classes and functions that Minx implements to enable end-users to write a highly customized window manager.

Minx Core

Here are the different classes in Minx's Python core:

Not all of the above classes are meant to be used directly by end-users. At this time, in fact, only the wm, config, and hooks classes are for public consumption. The minx.version object may also be used. Everything else should be considered internal to Minx.

Minx Layouts

Minx comes with the following layout classes:

You can implement your own layouts by deriving from the minx.layout.base class and overriding some of its methods.


As you can tell from the above, Minx is written in Python and is largely concerned with the details of laying out windows, circulating input focus, and so on. However, in order to be able to actually achieve that functionality, it needs to talk to the underlying display server, which it does using minxlib, a custom Xlib wrapper written in C++.

minxlib provides the Python parts of Minx a high-level, object-oriented API for talking to the X server. In general, end-users will rely on Minx's Python classes to effect various customizations and should not need to use minxlib directly. Nonetheless, the following pages document its public interface: