This is my own homegrown project, intended to explore compile-time configuration in Rust,
as well as to experiment with slightly unorthodox methods of organizing windows.
I’m posting this for two reasons:
to introduce myself to the community, which I’ve so far only lurked, and
to get feedback / spark some discussion on the concepts utilized here
“Gabelstapler” is the german word for forklift, which I used because forklift is already a crate and because being modular is one of the design goals. Less confusion that way.
My main design goal was to keep it as minimal as possible, and to reduce resource usage.
Thus, a few decisions were made:
I’m using XCB instead of Xlib to do the actual communication with the X server - that way one can reduce the amount of roundtrips to the X server, since many request-response cycles can be interleaved when, for instance, some similar operation has to be performed on a set of windows. This is the main technical distinction.
The scope is a bit different as well - I focused on allowing for extremely easy interoperability with other tools and a macro-based config system, which the user can extend as well. Moreover, a plugin system is underway, which would allow to include code that has access to the connection to the X server into one’s installation.
Finally, there’s the slightly different approach to tagging (as known from awesomewm and dwm), which
I modified since I felt a bit limited in how those window managers treat views of window collections belonging to multiple tags (see the README for a more elaborate description). From a quick scroll through wtftw’s code, I can’t say how it’s tagging support works, so it’s a bit hard to compare.
That’s mostly it, but it is still being worked on, so things may change (for the better I hope).
Very interesting! Currently on bspwm, will try it this weekend. Where did the name come from?
“Gabelstapler” is the german word for forklift, which I used because forklift is already a crate and because being modular is one of the design goals. Less confusion that way.
Interesting! Welcome to the community!
Sadly, as I currently don’t have a system to run it on, but used another one before, I’ve only got a boring question:
How does it compare to wtftw? https://github.com/Kintaro/wtftw
My main design goal was to keep it as minimal as possible, and to reduce resource usage.
Thus, a few decisions were made:
That’s mostly it, but it is still being worked on, so things may change (for the better I hope).
Thanks for the welcome btw :)
I’ll give it a whirl this weekend!