Qtile
Qtile is an open-source tiling window manager that is written in, and extended with, the Python programming language.
It can be used as an X11 window manager or a Wayland compositor.
Please refer to this discussion to see the current state of development of the Wayland backend.
Installation
USE flags
Qtile currently has no package-specific USE flags.
Apply these USE flags before emerging Qtile:
root #
echo x11-libs/cairo X glib opengl svg >> /etc/portage/package.use/qtile
Emerge
Then emerge Qtile:
root #
emerge --ask x11-wm/qtile
Qtile as a Wayland Compositor
Qtile requires dev-python/pywlroots, dev-python/pywayland, and dev-python/python-xkbcommon to be installed for Wayland support, however pywayland, and python-xkbcommon are dependencies of pywlroots hence emerging the latter is enough.
These packages are found in the overlay wayland-desktop, please refer to Wayland Desktop Landscape for more information about said overlay.
Emerge pywlroots :
root #
emerge --ask dev-python/pywlroots
Support for X11 applications (XWayland)
Support for XWayland also requires gui-libs/wlroots and pywlroots to be built with XWayland support which at the time of writing pywlroots already do.
Emerge XWayland:
root #
emerge --ask x11-base/xwayland
Configuration
Starting as an X11 window manager
Start Qtile using a display manager or the startx command.
If want to use startx and want elogind support, setup ConsoleKit and create the following file:
exec dbus-launch --sh-syntax --exit-with-session qtile start
Starting as a Wayland compositor
Start qtile from a command line using:
user $
qtile start -b wayland
Or start Qtile using display manager by creating a session file:
[Desktop Entry]
Name=Qtile (Wayland)
Comment=Qtile Session
Exec=qtile start -b wayland
Type=Application
Keywords=wm;tiling
Configuration file
Qtile can be customized by editing the config file in ~/.config/qtile/config.py. This file is generated when there is no present configuration file. If Qtile is running while configuring it, restart Qtile using its default keybind, Super+Ctrl+R to apply changes.
The default configuration file can be found at https://github.com/qtile/qtile/blob/master/libqtile/resources/default_config.py.
To check if the changes are written correctly:
user $
python3 -m py_compile ~/.config/qtile/config.py