PumoWM is a simple tiling windows manager written in Rust and configured in Python.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lucien Cartier-Tilet a8321ab3ae
Replaced license file
2 years ago
src Initial commit with README and LICENSE 2 years ago
.gitignore Initial commit with README and LICENSE 2 years ago
Cargo.toml Replaced license file 2 years ago
LICENSE Replaced license file 2 years ago
README.org Initial commit with README and LICENSE 2 years ago




PumoWM is a simple tiling window manager written from scratch for X.org. Its main aims are:

  • Provide a programmable configuration file written in Python. Being able to script while configure is an absolute blessing in AwesomeWM, but I regret so much its developers chose to use Lua instead of any other sane scripting/programming language.

  • Provide window tags, not workspaces. Workspaces are fine, i3 is still currently my main WM, but tags are by far superior to workspaces since then can not only behave like workspaces, but you can also display several of them at once and assign several of them to a single window.

  • Provide some default tiling schemas, other tiling schemas could be wrote and expanded by users.

I would also like to follow some Freedesktop standards, such as the EWMH and the XDG Base Directory Specification.

What I do not aim with this project is:

  • Make PumoWM run on anything other than a GNU/Linux installation. This project will be deeply linked to X11, and I have absolutely no knowledge or will to make it run on another OS such as *BSD, Windows (is that even possible?) or macOS. If you somehow manage to make it run there though, feel free to submit a pull request!

  • Be a Desktop Environment. Plenty of those already exist, and I do not wish to write a whole DE for now. Maybe one day I will write PumoDE, but today is not that day.

Why Rust?

Because it’s fast and safe. And because I want to improve my Rust skills. However: NO NIGHTLY RUST FOR PUMOWM. I want my code to be one day production-ready, and relying on a nightly version of Rust is begging for some catastrophic error since it is by definition unstable. Only Rust stable should be used for PumoWM, other toolchains will be rejected, no exception.

Why Python?

Because it’s a sane scripting language, unlike Lua for instance. And everybody knows Python, it’s not like it’s an obscure language or anything.