I've been a long time FVWM user, since the 90's or so, but lately I keep feeling less enthousiastic about it. It used to be that FVWM's configurability was unmatched among other window managers, but lately, I find that it feels kind-of limiting. I always felt (and I'm sure I'm not alone in this) that it's config syntax would have been better off just being implemented via a scripting language instead, with internals and low-level drawing functions exposed for maximum flexibility. Others, of course, have had the same thought, and this is how we ended up with perl scripting in FVWM. But it always was a bit of a bolt-on that felt a bit awkward to use. FVWM is a rather complex beast with a lot of organic growth over time, which has lead to a lot of issues when it comes to resource passing / resource ownership, and to some degree, state management. And internal drawing primitives, as far as I know, were never exposed very well to the scripting layers. Thomas Adam did also add golang support in fvwm3, which I never did play with, so maybe some of these things were addresed there, but I have such a distain for anything google, that I don't want to go anywhere near it. In fact, it's inclusion in the project is kind of another reason why I feel myself pulling away. The recent switch to meson didn't help either. (Now, mind you, beyond that, Thomas has very much done an exellent job maintaining the project up to this point - I don't fault them for it - we've all got different preferences - and I am a pretty grumpy motherfucker when it comes to computerey things (especially lately now that corrupt corporate nonsense is destroying everything we built,...) - I played with the idea of maintaining my own fvwm fork, but honestly, it'd be less work to just implement it from scratch than to fix what's there... In recent (RECENT TO ME OKAY- I'M OLD) years, a few window managers have been popping up who's main configuration is a proper scripting language. I've been eying awesomewm over the years, but I never was much into tiling-first wm's - I prefer my windows to float by default, and tile as-needed. - I tried it a few times, but never got that deeply into it. Until a few weeks ago... when I tried it again, and realized that you can actually have it be floating by default. I had it functioning mostly like my fvwm setup in virtually no time, with mostly keybindings for various window operations and for launching commonly-used applications and such. My first real gripe with awesomewm was how awfully flat it looked by default. I like my motif/cde/4DWM/whatever-like borders. Thankfully awesomewm exposes drawing primitives, and you can pretty- much re-define how it draws or does anything. It uses the cairo library for 2d drawing, and exposes that to lua, so that's fun. It took me embarasingly long, but I finially got my window borders working the way I want, not only in looks, but functionality. Dragging by one of the L-shaped corner border widgets, initiates a resize operation from exactly that corner. Dragging from the top, left, right, or bottom window resizes vertically or horizontally exactly from where you clicked, and thanks to cairo, I was even able to draw the icons dynamically, vector style, not unlike how it works on 4DWM in Irix. But yes, it took me a lot of effort and time. It's all quite low level, which is good for flexibility - bad for time-economy ; For instance, as far as I can tell, awesomewm does not have a double-click signal, so I had to implement my own from scratch, so clicking the top-left menu/close item once, shows the window menu, but double-clicking it closes the window. In any event, if you feel like stealing my messy code, I threw it up on git : https://linkerror.com/git/jns/awesomewm_config all of this is implemented in my_window_decor.lua so that and it's dependencies are the only files you need to grab... Then use it in your rc.lua like below: on top: local decor = require("my_window_decor") and in the titlebars section, replace the whole thing with just: client.connect_signal( "request::titlebars", decor.request_titlebars ) My awesomewm setup is still far from perfect, the task bar on the side of my screen still looks very flat and dull, and I need to fix a few issues with some new windows (eg splash screens) appearing off-screen initially. There's probably a lot of things I'm doing that are not ideal, it's my first stab at this, but the fact that I got it working the way I want at all is certainly a testament to how customizable and flexible aweseomwm is. Here's a little video of what it looks like: https://toobnix.org/w/a2fuZ7zcdWfESMvfbigN3U