Tiling, Floating ยท Window Manager
plwm
plwm is a highly customizable X11 dynamic tiling window manager written in Prolog.
Developed by
Seeker04, contributors
Seeker04, contributors
Status
Type
Server
Written in
GPU
Overview
About plwm
plwm is a highly customizable X11 dynamic tiling window manager written in Prolog.
Main goals of the project are: high code & documentation quality; powerful yet easy customization; covering most common needs of tiling WM users; and to stay small, easy to use and hack on.
Powered by SWI-Prolog
Porting to Scryer Prolog, a Rust-powered ISO Prolog implementation, is underway too! (discussion, PR)
2025.11.14: plwm was presented at Scryer Prolog Meetup 2025. Slides are uploaded in ODP and PDF.
- Easy to hack on, great way to introduce yourself to the logic programming paradigm and Prolog
- Easy to configure: Prolog is declarative, so even though the config is source code, it feels like a dedicated format
- Tiling is dynamic, with various layouts included by default: monocle, vertical/horizontal stacks, grid, left/right/top/bottom/centered master-stack, nrows(N), ncols(N)
- Floating windows are also supported (move/resize with mouse)
- Support for external bars, e.g. polybar, lemonbar
- Nice level of EWMH compilance - partially still work-in-progress
- Performance: plwm is fast and light as a feather when it comes to resource usage (10-15 MB memory)
- Dynamic workspace operations: create, rename, reindex or delete workspaces on the fly
- Other features: multi-monitor support, inner/outer gaps, menu integrations with dmenu/rofi, rules, hooks, animations, command fifo and more
- You can say: "My window manager is a semantic consequence of a set of axioms and implications which my computer is deducing/proving from an infinitely branching proof-tree"
01
Notable features
Prolog configuration,multiple layouts,workspaces,multi-monitor support,EWMH hints,hooks and FIFO scripting
Gallery