Our great sponsors
-
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.
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.
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.
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:
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