240 karma · joined January 7, 2023
It doesn't just implement this specific feature, though. It provides a more general approach for i3bar that enables this and many other use cases. This struck us as a good and flexible solution we can get behind.
i3 should definitely work on BSD, there are a few awesome folk that regularly send patches when we broke something. I don't have experience with it myself though.
When I came to Linux I quickly got into the unixporn community. After a bit of making Ubuntu look nice, I discovered i3. I then found the gaps patch and rebased it onto the latest version of i3 at the time. Lots of unixporn people liked that and asked me to create a repository for it, so I did -- and i3-gaps was born.
The reason I say it's true enough to say it was born on unixporn is that it's where "a gaps patch" turned into "i3-gaps", and also I reworked so much of that initial small patch that it became something new essentially.
In i3 we have always tried to weigh benefit against cost. We also really care about compatibility. It's easy to add a feature, difficult to maintain it, and impossible to remove it.
I was using i3 until the very end though, and I do dearly miss proper window management. My shortcut setup now is an absolute mess. I technically did run i3-gaps because of some features, but not gaps. This was mostly because I actually mostly used a one window per workspace approach, and if more, then a tabbed layout, so no need for gaps there.
There's a small footnote to this, but I think it's true enough to say it like that.
The story of this merge is not only several years long, but a true success story in OSS in my eyes.
I took on i3-gaps by taking an existing patch and rebasing it to the latest i3 HEAD. From there it became popular and I took on the maintainership, eventually contributing to i3 itself and finally becoming a maintainer there as well.
Whilst originally gaps were considered an "anti feature" for i3, years ago we already decided that we'd accept adding gaps into i3. Clearly the fork was popular, and as someone else pointed out here as well, the Wayland "port" of i3, sway, added gaps from the beginning on with great success.
However, the original gaps patch was focused on being small and easy to maintain. It caused a few issues and had some drawbacks. We made it a condition that porting gaps into i3 would have to resolve these issues. Alas, this could've meant a lot of work that no one took on for the years to follow.
Recently, however, the maintainers of i3 got together (a chance to meet arose randomly). During that meeting we decided that it'd be better to just merge the fork and improve it later. And as it happened, Michael, the author and main maintainer of i3, did all that work during the port as well.
What resulted is the end of almost a decade of i3-gaps, and a much better implementation thereof. I'm incredibly happy to see this happen after all this time, and a big shoutout to Michael here for all that work.
Edit: Hadn't realized Michael was commenting here already. I guess leaving the background and story from my side of things doesn't hurt regardless.