Introduction
Welcome to Penrose: a modular tiling window manager library for X11 written in Rust.
Unlike most other tiling window managers, Penrose
is not a binary that you install on your
system. Instead, you use it like a normal dependency in your own crate for writing your own
window manager. Don't worry, the top level API is well documented and a lot of things will
work out of the box, and if you fancy digging deeper you'll find lots of opportunities to
customise things to your liking.
If you are new to Rust it is worthwhile taking a look at the learning materials provided by the Rust project to get up to speed on how the language works. (The rest of this book assumes you are somewhat familiar with the language).
The rest of this book covers the concepts and implementation of Penrose
at a level of
detail that should allow you to implement your own extensions and custom functionality
on top of the base library. If you just want to skip ahead to a working, minimal window
manager then take a look at the Quickstart section of this book or the examples
directory of the GitHub repo. (My personal config is also available to take a look
at if you want to see what something a bit more involved looks like!)
As with all crates on crates.io, the crate level documentation is also available on docs.rs.
Happy window managing!