# sminez/penrose

A library for writing an X11 tiling window manager

Repository: https://github.com/sminez/penrose
Canonical: https://ross.abutalabs.com/products/sminez-penrose
Homepage: https://sminez.github.io/penrose/
Language: Rust
License: MIT
License Family: permissive
Topics: window, manager, wm, x11, x11-wm, xcb, rust, xcb-api
Last push: 2026-02-10T07:57:08+00:00

## Health v2 (maintenance only)
Score: 52/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 66, release rhythm 8, longevity 100
- inputs: {"age_days": 3125, "days_push": 204, "days_rel": 469, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1350, forks 91 (observed 2026-08-28T04:04:28.117104+00:00)

## What it is
Penrose is a modular Rust library for building your own X11 tiling window manager, inspired by dwm and xmonad. Rather than being an installable binary, it is used as a dependency in your own crate so you can configure and extend window management behavior in code.

## Use cases
- write a custom tiling window manager in Rust
- configure my own X11 window manager without editing C code
- replace dwm or xmonad with a hackable Rust-based WM
- build a minimal tiling WM tailored to my workflow
- learn how window managers work by extending a library
- customize keybindings, layouts, and hooks programmatically

## When to choose
- you want a tiling window manager configured in Rust code rather than a config file
- you like the dwm/xmonad model but want a modern, typed, extensible codebase
- you need fine-grained control over layouts, hooks, and window management behavior
- you are comfortable writing and compiling your own binary crate

## When to avoid
- you want an out-of-the-box window manager with a simple config file
- you need Wayland support - penrose is X11 only
- you are not comfortable writing Rust or maintaining a compiled binary
- you want a drop-in replacement for an existing WM without coding

## Facets
- artifact type: library
- maturity: active
- function: gui, developer-tools, plugin-system
- domain: desktop-applications, developer-tools, operating-systems
- platform: rust
- tags: x11, window-manager, tiling-wm, dwm-inspired, xmonad-inspired, xcb, linux

## Member repositories
- sminez/penrose (main) score 52

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:28.117104+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:42:18.766576+00:00, confidence not recorded.
  - readme: https://github.com/sminez/penrose (fetched 2026-08-28T04:04:28.117104+00:00, sha 76de64a7553e)
  - homepage: https://sminez.github.io/penrose/ (fetched 2026-08-29T12:01:11.432449+00:00, sha 61582525f68b)
  - site_page: https://www.sminez.dev/penrose/getting-started.html (fetched 2026-08-29T12:01:11.442086+00:00, sha 79a052c9429a)
  - registry_crates: https://crates.io/api/v1/crates/penrose (fetched 2026-08-29T12:01:11.444543+00:00, sha f4b76890df97)
- Data as of 2026-08-30T08:39:29.467469+00:00.
