1. 21

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
  1.  

  2. 4

    Very interesting! Currently on bspwm, will try it this weekend. Where did the name come from?

    1. 3

      “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.

    2. 3

      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

      1. 5

        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).

        Thanks for the welcome btw :)

      2. 3

        I’ll give it a whirl this weekend!