Plwm – An X11 window manager written in Prolog

https://news.ycombinator.com/rss Hits: 8
Summary

plwm - An X11 window manager written in Prolog Table of Contents About 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 Feature highlights 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" Installation Dependencies: xorg with libx11-dev , libxft-dev , libxrandr-dev (exact package names may vary) with , , (exact package names may vary) SWI-Prolog (downloadable from most distros' package repos) On Ubuntu 22.04, easiest way to install them is: $ sudo apt install xorg-dev swi-prolog Run: $ make && sudo make install By default, this will install plwm to /usr/local/bin/ . The location can be adjusted in the Makefile. Minimal environment Add the following line to the end of your ~/.xinitrc : exec plwm Then simply use the command startx in tty. For ...

First seen: 2025-05-25 18:45

Last seen: 2025-05-26 01:46