Is there a tiling Window Manager for Linux that is written and configurable in Rust?

Is there a tiling Window Manager for Linux that is written and configurable in Rust?

If it does exist, is it just as customisable as XMonad and AwesomeWM?

Does it have its built in taskbar and widget support just like AwesomeWM?

There are a few projects like this!

I think LeftWM is the most active one. It has good configuration, but I don't know much else about it. I think this is the only project which is still being worked on?

wtftw used to be good - it's fairly customizable, and has taskbar support. But it hasn't seen active development for a few years now.

fireplace and gabelstaplerwm are another two projects in the same boat - both relatively complete, both abandoned.

way-cooler was one of the bigger projects, and it used to be pure-rust. But it's compositor was rewritten in C, and as of about a year ago it's also been abandoned.

2 Likes

Thanks for your response I will take a look at LeftWM.

Would you happen to know if awesomeWM can be configured through Rust instead of Lua?

I don't know - but I think it's probably unlikely? Scripting languages like Lua generally work a lot better for configuration than compiled ones like Rust. The speed benefit generally isn't worth it for something run once on startup, and there are heavy downsides, like having to recompile every time you change the config.

Even the rust-based WMs usually use use other languages or formats for configuration - Way Cooler even uses Lua.

If you want Rust-y configuration, there are quite a few scripting languages written in Rust which offer similar things to Rust, and they would fit the configuration niche a lot better than Rust does. I doubt AwesomeWM supports any of them, but if you were to add support for a Rust-like configuration language, I would definitely recommend one of these scripting languages rather than Rust itself.

1 Like

Oh so like with AwesomeWM, everytime I boot up my PC, it only has to run the Lua script once, and then it doesn't have to constantly run the script if the user clicks on a button or something, right?

Yes - generally software will only run the configuration script once, and then after that it'll keep all the information in memory.

If there's anything like a callback or any dynamic displays, like in a status bar, then things might be run repeatedly. I don't know if AwesomeWM has any of these. Even then, though, the script is generally run at the very most once a second, and without loops or hard computations Lua is still plenty fast for that.

Typically the only thing which updates frequently is the status bar, and potentially widgets. I mentioned one second because if a clock has a second field, it'll need to be rerun and output the new format every second. To that end, there are some status bars written in rust, like i3status-rust. They don't implement the full configuration, but only the part which reruns frequently (in this case, the status bar).

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.