Hacker Newsnew | past | comments | ask | show | jobs | submit | Airblader's commentslogin

Just now saw this comment. That's really neat, pleasure to "meet" you. :-) That naming certainly gave me some headache over the years because it always stuck, and seems to be the cause of all the heated discussions. Anyway, I also wouldn't have it any other way now!


There's an open PR that will make this possible.


that's awesome! do you reckon the pr is going to get accepted? I definitely remember reading discussions of this issue in the past and seeing a firm "we don't want this feature in i3" response.


The PR is coming from one of the core maintainers, so yes, it will be accepted.

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.


I think that's an unfair and fundamentally false representation of the discussion on that issue. But I won't further comment on it here.


I see your point (in general terms). But I think people tend to overlook the hidden costs of optional features in terms of maintenance and complexity (in code, documentation, and for users).

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.


Yup! We even have an FAQ entry on the reasons for not merging features without careful consideration: https://faq.i3wm.org/question/778/why-is-patch-not-merged-an...

Also, saying “it’s not that many lines of code” comparing the before and after state is too simplistic: it doesn’t include the cost of changing the existing code into the desired state, which can be a significant effort, even if the number of lines doesn’t differ much before and after. See https://github.com/i3/i3/pulls?q=is%3Apr+author%3Astapelberg... to get an impression of how much work it was to merge gaps.


I'm impressed with your complete lack of snark in response to my asininely snarky comment, edit or no. I went from thinking you're a bad maintainer to thinking you're one of the more level headed ones I've interacted with. I feel like there's some kind of lesson here about Bayes' Law.

I never used i3 much beyond trialing it for embed stuff(went with dwm). I'm too much of a Lisp nerd not to use StumpWM. I like the fact that your stumpwmrc is essentially just a live patch for your WM. You can redefine arbitrary functions, classes, variables, define commands with arbitrary code in them. And you can patch the WM while running via Emacs.

How is i3 support for more obscure unices like OpenBSD, Illumos etc? StumpWM is kind of a pain to get working after they dropped support for all compilers except sbcl...

And I agree completely general in about the tradeoffs of adding features.

It's tough to do, though my philosophy in this specific case is also that customization is a core feature of any good tiling WM and should be priorited almost above all, except performance and minimalism.


I can promise you that in a decade of doing this, I've made my fair share of mistakes as a maintainer. There's a learning curve to everything, and maintainer burnout is a real thing, too.

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.


Naturally, the best maintainers are those that are humble enough to learn from their mistakes. And maintainership is just hard, way harder than writing code IMO. You have to have and defend a vision for the project, and yet not be so staunch as to scare off the many users and contributors you depend on. You can't be everybody's best friend; sometimes you really do have to give a list of 18 different bugs in a 10 LOC PR, and yet somehow try to do it without completely disheartening someone who means well and wants to learn. And then on top of all that diplomacy you still have to dig down and figure everything out when a particularly nasty regression slips through the cracks.

I know I couldn't do it worth a damn, just thinking about it gives me an ulcer.

One other maintainer who I admire is Greg KH, maintainer of the Linux stable branch. 15 years ago I sent him this absolutely useless patch cleaning up the code style of a driver that was marked to be deleted and rewritten from scratch. 15 year old wannabe kernel hacker just finished his first read of K&R and wants to go straight for the damn linux kernel next.

In his reply he not only thanked me for what was basically a waste of his time, explained why there was no point taking the patch, then he went and reviewed the patch anyway! This was at least a couple kloc, and he voluntarily wasted even more of his no doubt precious time to teach me a few more things. He even responded to a follow up email asking for reading material. I'm not sure how he does it. My main hypothesis is Greg KH is secretly the identical triplets Greg, Karl and Harold and they're somehow all kernel maintainers.

That interaction, while just one in hundreds he engages in on any given day, to me was oddly enough life-changing. It let me know I was overreaching to an absurd degree, yet also inspired me to keep learning(big deal for a 15yo). And I did end up becoming a capable low level C programmer, doing some of the best work of my career in embed stuff during the brief windows my health has allowed me to be productive. It also helped me accept that I'm just not cut out for hacking on the kernel, which is fine, almost no one is.


OpenBSD packages i3: https://openports.se/x11/i3

I briefly (for about a year or so) developed i3 on NetBSD.

I have no knowledge of other more obscure variants, though.


> In i3 we have always tried to weigh benefit against cost. We also really care about compatibility.

Thank goodness for this. I would say you've succeeded at those goals - sometimes I go deep into tinkering and other times I am focused on something else. i3 is on the short list of software that I can tweak to my liking and then ignore for years without concern that my environment will mysteriously break from an update. I really, really appreciate that, kudos.


/r/unixporn is where i3-gaps was born, as a matter of fact.

There's a small footnote to this, but I think it's true enough to say it like that.


Curious to hear the full story!


The footnote is that I didn't author the idea of gaps in i3. There used to be a loose patch floating around that applied to an old version of i3.

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.


Back when I used i3-gaps myself (yes, that time is behind me, sorry), I liked the visual clarity gaps provide. And from years of interacting with the community I know many people feel the same way. It just makes things feel less cluttered.


Out of sheer curiosity, what kind of setup do you use today? I did briefly try i3-gaps myself but ultimately never daily drove it. (nowadays I run Sway, but with no gaps.)


This will make some people sad, but I'm on Mac these days.

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.


Honestly I ran Mac for 3 years or so and i3 was one of the reasons I went back to the Linux.

That and the "war on hackers" that Apple seem to wage last few years also did not help (breaking uBlock in Safari, inability to permanently disable some system services without having to disable SIP and thus losing ApplePay+disk encryption to name a few)


I'm not sad per-se. I mean I have a strong distaste for modern macOS, but it's not like it matters to me personally what anyone else runs. I'd just prefer to not run it myself.

I will say though that I run Linux more than ever these days. I'd say the reason has more to do with Windows and macOS feeling like worse prospects than Linux actually improving as a desktop OS...

That said, I'd like to take this moment to tangent. I really, really despise the rise of SOC2 theater. It has largely killed Linux workstations at startups, and I am pretty close to quitting out of the industry due to the amount of stress this has cost me.


Exactly. There's a reason whitespace is a thing in graphical design.


Hi. I'm the maintainer of i3-gaps and also a maintainer for i3.

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.


Thanks to both of you for maintaining i3(-gaps) all these years! I don't remember exactly when I started using i3 but it's been at least 9 or 10 years, if not more. I didn't make the jump to i3-gaps until a couple years later but, boy, am I glad I did!

For me, i3 is one of those few pieces of software that is pretty much optimal – it is rock solid and stable, I wouldn't know how to improve it any further and I also couldn't imagine living without it. By now, my i3 keybindings are hard-wired into my brain and I despise having to work with any other window manager or desktop environment! Besides, for the few rare cases where you do forget to lock your screen, a tiling wm with custom key bindings is a great way to prevent your colleagues from messing with your machine, in particular: announcing free cake using your Slack account. :-)

Story time:

When I was still doing research in cosmology back in 2014/2015, one day there was this new guy in our research group and, as it so happens, we ended up sharing an office. A couple weeks in, we were both at our desks and he looked over my shoulder and said:

"Ahh, I see you're using i3!"

"Yup, been using it for quite a while and I absolutely love it!"

"Do you know who the maintainer is?", he replied, with a big smile on his face.

Turns out, Michael was his brother! So that's how I learned to remember the name "Stapelberg". :-)

[@secure: Please say Hi to him for me!]

A few years after that episode, one night I told a good friend of mine about i3 & i3-gaps and we both had a look at their Github repositories. My friend had recently started working at this IT consulting firm, and he went: "Wait a second, Airblader / Ingo Bürk? That's my colleague!"

Not long after that discovery, I started working for a startup in Munich and it just so happened that the startup had also hired that same consulting firm for their dev team. Aaaand Ingo was their consultant! I'm honored to say I learned a ton from Ingo during that time and I still look back fondly to pair-programming with him (i.e. mostly him telling me what to do or patiently explaining things to me). If I've ever seen one of those infamous unicorn rockstar 10x developers, it's definitely him!

Four years later, I ended up at that consulting firm, too, in no small part thanks to Ingo convincing me to join them.

All this is to say: The world is small. And: You guys have changed my life! Thank you! :)


It truly is a small world! I’ll say hi to him, thanks for sharing :D


> For me, i3 is one of those few pieces of software that is pretty much optimal – it is rock solid and stable, I wouldn't know how to improve it any further and I also couldn't imagine living without it

I like i3 in principle, but the lack of vertical dock support is a dealbreaker for me. Things like swaybar taking up vertical space across the entirety of my wide desktop is just a shame.


There’s a GitHub issue for this vertical bars. It sounds complicated.

https://github.com/i3/i3/issues/1129


Upvoted - dont know why people would downvote a simple opinion (which includes a fact) stated without any apparent malice.


You can always use an alternative dock. I prefer using i3-gaps with Polybar simply for aesthetic and customization reasons.


Not supporting vertical dock clients is indeed a limitation in i3, using another dock client doesn't help here.


The pleasure has been all mine. :-)


Thanks for providing the background here, and thanks for maintaining i3-gaps over all the years! :)

I’m also happy we could complete this merge now!


Thank you both for creating and maintaining the snazziest and most reliable window manager in this galaxy.


Ah i3. With the sole exception of vi, no other software is so fully embedded in my muscle memory. Thank you, I think.


> Ah i3. With the sole exception of vi, no other software is so fully embedded in my muscle memory.

Ironic, given that the default i3 configuration uses jkl; instead of hjkl for direction.


Oh that's a good point. I forgot about that. I aligned them immediately and then forgot that my values aren't the defaults.


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

Off topic:

Sounds like an in-person meeting, as opposed to only being remote, facilitated a roadmap change that hadn’t happened without it.


I think the in-person meeting made this a bit easier, but we had been talking about it prior to that, so I think it would've happened either way.


Thanks to you and all the other i3 maintainers. i3 is a life changing experience for me. It completely changed the way I looked at computers themselves (having been raised on a steady diet of Windows and OSX, i3 was the first time I became aware of the fact that there could be other desktop UI paradigms, which changed how I look at nearly everything else as well).

On a more practical level, I’ve never been more efficient as I have been i3.

So a deep thank you to all the folks responsible for building such great software and making it accessible to so many so easily.


What do you think about getting alt-tab support in there? Here to say this: https://github.com/westurner/dotfiles/blob/develop/scripts/i...


You want to use i3 to collapse focus management into a single temporal dimension?

I'll die defending your right to do so, but dear god your taste is atrocious. It's like you finally got out of prison and decided to decorate your bedroom window with iron bars.


In every window manager that supports it, alt tab does two things.

Alt tab with a long hold on alt lets you select another window, albeit from a linear list as you describe, by cycling through with tab and shift-tab.

Quickly typing alt-tab now cycles between the window you came from and the window you just selected. That’s the super useful value of the feature.

Is there an i3 command to (a) leap to another window from a selection and (b) leap back and forth between the window you came from and the window you just chose?


> Is there an i3 command to (a) leap to another window from a selection and (b) leap back and forth between the window you came from and the window you just chose?

Not for windows as far as I know, but for workspaces, yes: https://i3wm.org/docs/userguide.html#back_and_forth https://i3wm.org/docs/userguide.html#workspace_auto_back_and...


For (a) I've been using rofi. I bound a key to open its window switcher which gives me a searchable list of all open windows. There are quite a few other options: https://wiki.archlinux.org/title/I3#Jump_to_open_window

For (b) I don't know what the best option is but I see some people posting their scripts in this thread: https://github.com/i3/i3/issues/838 I think I would bind some keys to mark and then focus by mark if I wanted to do this instead of having a toggle.


So far as I know, the only way to get that functionality is to put the windows next to each other and to navigate them spatially (or to write a script that does it and bind that script to alt+tab).

But grouping windows logically based on how they're used has always just felt right, so I've never really considered that you want to keep track of the order in which windows were previously selected (using alt-tab to navigate even just three or four windows can be quite a trick). It always seemed like a necessary evil since floating-only window managers can't handle the kind of spatial focus-navigation that i3 does.


Do you happen to know an alt tab that just uses the currently visible desktops ? ( I have two monitors, and want to alt-tab between windows without finding the old ones hidden)

---

Also, I feel bad using this thread for feature requests/questions. Lovely work guys, and I am very grateful!


Do you mean currently visible desktops or windows? https://github.com/sagb/alttab is the utility of my choice to get what I wanted.


Much much much thanks to you all for working and contributing to i3. It is the primary reason I use Linux. I love it. I couldn’t do my work without it. Thank you!


Cool to hear some background stories to i3 from you and the other replies here. I didn't think about it in some time since i3 just works, but yeah thanks for maintaining this great project. Also surprised Michael is still maintaining/using it after becoming a Go evangelist. ;;-)


Thanks for all the work maintaining and improving i3 I enjoy using it every day and really appreciate it.


Being a user of i3-gaps for a couple of years. Just want to say thank you for all the work!


Thank you and the team for all the hard work! i3/gaps has always been my favorite twm.


Adding to that, I didn't fully move to wayland until sway was mature enough for my day to day work. i3 (I think I found the project through a twit from somebody at Google) is completely burned into my mind and my current workflow and I just could not living without it.


Thank you! I use and love i3 gaps and can’t wait to update to i3 mainline in the future.


I never thought I would live to see this day! Thank you so much for the work


thank you so much for all your hard work!


Thank you.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: