I wrote an x11 tiling window manager inspired by DWM that I've been using for a few months now. If you're using x11 and want to try out a new tiling window manager I'd love your feedback!

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • pgwm

    A minimal tiling x11 window manager

  • So if firefox is an application you can find you can query the WM_CLASS property, like this. Other applications might not set that and you'd have to use some other property or information to deduce that this given window(which is just a u32) is actually applicationA. A tip is to start the application, use xprop and see what properties it sets. call_wrapper.rs contains a lot of code about querying different properties. The x11rb example simple_window.rs has a few examples of the other side of that showing how an application can set its on properties.

  • x11rb

    X11 bindings for the rust programming language, similar to xcb being the X11 C bindings

  • Hmm interesting, personally I think this project would be overkill to achieve that. But in essence that would be fairly simple. First the window needs to be detected, if it can be detected by class-name or wm-name the detection is easy, if not, some heuristic would have to be used and that would probably be a bit fragile. After the window has been detected it should take input focus and be drawn with the monitors dimension to take up the entire screen, then just stop listening to all events. If not listening to any events the window can't be undrawn from the screen, but pop-ups wouldn't work either. I think the best way to achieve what you're after would be to modify one of the examples from x11rb, this is the one I used to get started. pgwm's code is a bit messy but it could probably guide you in interfacing with the protocol, extracting class names etc.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • penrose

    A library for writing an X11 tiling window manager (by sminez)

  • Mostly non-dynamic except for wm-specific actions. What kind of events are we talking about? I think that if we're talking about something that on a more low-level exposes x11 events penrose is a better bet. That being said, exposing something like:

  • i3status-rust

    Very resourcefriendly and feature-rich replacement for i3status, written in pure Rust

  • Yeah, much better than the default i3status, it is well documented, you can check its screenshots and documents for more into. https://github.com/greshake/i3status-rust/blob/master/doc/themes.md

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts