Ask HN: Are you faster navigating windows with i3 than other window managers?

20 points by rodoni ↗ HN
A friend of mine claims that he is faster with i3 than every other window manager he ever used. What are your experiences?

53 comments

[ 3.4 ms ] story [ 126 ms ] thread
Not really, I use my mouse too much.
Using sway here (it's like dwm; a bit "simpler" than i3). I only use my mouse for browsing or using vscode. It's definitely easier because:

- windows take the whole screen by default

- you can easily switch by workspaces (ALT-1,2,3,...)

Basically, tiling WM are great IMHO

Sway isn't simpler than i3 - it's a configuration-compatible version of i3 for the Wayland display protocol.
I may even say more 'difficult'

Less because of Sway in particular - but quite a lot of stuff needs arguments to properly Wayland-ify

Yes. That said, I've sadly switched away from i3wm to macOS.

I still have my XPS 13 Developer Edition, but dealing with quirks caused more lost time than I saved with i3wm. Dell has questionable UEFI firmware, and GPU drivers (aside from Intel) were a constant source of kernel panics every few weeks if I ever bumped my eGPU cable.

If you’re looking for something similar for macOS, you can get partway to an i3 experience by using yabai and skhd. I’ve incorporated into my own environment and found it to be very useful.
I was an early user of Moom on MacOS and haven’t looked back from the dialed in window management.

The other app that I can’t use a Mac without is Alfred. There’s other options popping up but Alfred really has a head start on many small things.

I still try to go Linux fill time each year and it’s there for development, but not for becoming an invisible computer like the Mac can become to get into flow so much quicker as long as the nannies and notifications are disabled.

I have held off on a new Mac since my i9 15” mbp but it looks like the m2 max 14” is a good candidate minus the smaller fans

There's a curve

Now that I have i3/Sway configured as I like, I'm fast. Too fast, deliberately narrating what I'm doing when sharing my screen

It didn't start this way. I was painfully slow until building enough familiarity and tweaks (ie: this window class opens on this workspace)

As others have pointed out, it's easy to spend more time than you save. Spend effort on 'constants' -- I always want this here, and then build your workspaces on login

That's saved me the most effort and time

I think I landed on using 4 workspaces and 5 scratch pads (most of the time).

---

Workspace 1 : browser(s)

Workspace 2 : code editor(s)

Workspace 9 : music library/mpv

Workspace 0 : signal

Scratchpad - : zoom

Scratchpad + : slack

Scratchpad [ : browser (front-end development)

Scratchpad ] : designs/notion/ChatGPT/etc

Scratchpad \ : terminal

---

What's your workflow?

You're more of a workspace user than I, ironically - considering how much I mentioned them! I use the tabbed layout, the lazy way out of many-workspaces.

I generally keep one workspace:display (three). Then splitting vertically/horizontally as needed. I use tabs as most would use workspaces

Left-most is a monitor with portrait layout, meant mostly for long-form reading. That's where Slack and other infinitely-going things go. This is WS #3

Center display/workspace is WS #1, unmapped things go here. It's a 4K display, I never share it - so it's a nice catch all for potentially-sensitive things.

Right-most is WS #2 - this is what I share, and is more 'the backup' for the primary. Things I do want to share are designated to go here

There's a lot of organization I did for 'autostarts', assignments, and shortcuts - that are kind of hard to explain... but easier to show

Adding to this, I realized a part I missed -- I use workspaces like folks would use scratch pads

With the tabbed layout each display becomes a sort of permanent workspace. I then toss things I don't really care about into new workspaces as needed, sort of like a scratch pad

Things that only start on certain days (mostly work tasks) go into these other workspaces by default

I am using it for years and with great success, but I still mess up a lot when configuring more complex layouts.
I think the speed between different tiling managers is negligible when compared to not using one at all. They're all highly configurable.
My experience is you lose any gains elsewhere - messing with config files, random apps breaking in a tiling WM, having to plan your workspaces, having to do like 5 chords to get the optimal layout, etc.. I also think i3/sway style tiling is kinda unusable on large or ultra wide screens which is what I use nowadays.

I feel my productivity is pretty much the same on KDE/Windows/OS X (with rectangle) style WMs after some adjustment. How often do you really need to rearrange windows anyways in your day to day? And does it need to be perfect?

The only tiling WM I found had substantial benefits was PaperWM. I wish that style of tiling was more popular. It’s kind of the best of both worlds between tiling and non tiling.

No. I find PaperWM's scrolling window management much faster than i3's (or any other desktop's) limited width and height approach.

PaperWM is truly revolutionary, I'm never going back to traditional WMs.

Regardless of how fast the user is, I like i3 because it's very lightweight.
I wish something like Rectangle (https://rectangleapp.com/) existed in some Linux desktop distro.

I tried linux desktop tiling window managers, and they work with the UX differently compared to MacOS window managers.

Rather than moving application windows as layers (and retain the ability to click-and-drag their window dimensions), tiling managers awkwardly force app windows into tiles (often with large gutters) and remove the ability layer windows and to click-and-drag window sizes.

They are a few options in the debian/Ubuntu world but the name is escaping me right now.

Ubuntu and other also have some of the window sizing and management features built right in depending on what you are looking for

You seem to be getting downvoted but your comment gelled with me. I always wanted to get into a "true" tiling window manager but could never quite give up having some level of finer grain control just for whenever.

I've ended up really happy with rectangle + karbiner elements for the "hyper key" style mod to effectively end up with the bulk of what I want out of a TWM but still vanilla drag and drop if I want.

Between that + spaces I'm about as happy as I think I could be with my window layout these days and can't imagine changing that much any time soon.

I was really happy when they made the padding between windows easily configurable. That said from comments here I think I might give Yabai a go and see how I get on.

Probably, yes. I think this is probably true of any customized TWM.

For me that speed comes from the superior workspace management and less from the keyboard navigation. In gnome I find that the switching through alt-tab, super-tab and the dock is terribly buggy and constantly accidentally taking me over to another space, breaking my focus totally. I probably have undiagnosed ADHD and i3/sway allow me to maintain a very neat, totally distraction-free environment. I found myself coming up with scripts to keep my contexts static in gnome, but it's a losing battle.

Absolutely true. I can't use anything else anymore.
I never felt speed was the primary reason for me to use i3wm (or my preferred tiled WM awesomewm). It just felt more convenient. I never had to worry about placing windows, which just removes a bunch of cognitive load. I want half a dozen terminals open (hell, make it a dozen) but I want to be able to see all of them? It's automatic. I want to open a document and a browser next to it? Automatic. I want a video in the corner, some terminals in their own corner and browse the net on the other half of my screen? Automatic. Couple that with virtual desktops and it becomes second nature to create context-specific desktops, and switching between projects with minimal overhead is just how things are.

I think my interfacing with my computer is infinitely worse now that I currently don't use Linux on a daily basis and so don't have access to that kind of well-implemented tiling anymore. Also, while tiling WMs are overall an immense joy, none of them are desktop environments and in most distros there's a lot of fiddling to get a tiling wm to function remotely as well as a standard DE (I used to use the awesomewm flavor of Manjaro, which hasn't been maintained in years, unfortunately).

I basically use i3 as a very minimal window manager. I just run all my programs full-screen on a workspace each e.g. one for chrome, one for visual studio code, one for slack, one for discord etc. I only ever use the tiling to bring up a quick terminal wherever I am or maybe to view a browser occasionally. You can def go down the rabbit hole with optimising but you don't need to. You probably rarely need to really see verything as once after all - hardly good for productivity IMHO. Otherwise I like how there are no window decorations using screen real estate or menus I never use etc
I have a completely new install of archcraft with hyprland and I have to say that it's the fastest out-of-the-box productivity experience I've ever had.
Absolutely. I use ChromeOS (Framework Chromebook) now because I prefer the stability however I very much miss i3. The overhead of managing windows and workspaces completely and seamlessly disappears (for me at least). I'm not even that big of a power user, I probably only use 3-4 workspaces at once.
After years of i3/bspwm, I switched to Gnome. I felt I was faster and more productive with a TWM, but after having to use Gnome at work, I realized that was not the case. In fact, Gnome being a full desktop environment instead of something I threw together brought me more productivity.
I went through the same process. In the end I realised that I was only using tiling for terminal windows and tmux handles that better than i3.
I tend to agree, gnome seems to be built with touch pad devices in mind. I like the convenient top-left hot corner to switch apps using a touchpad. I almost never use floating windows. When on the keyboard I can alt-tab or press the windows key to get the same overview quickly.
Similar with me. I used it and loved it. But floating windows are sometimes really helpful (testing website sizes for instance). I switched to KDE for 2 years and now I'm on Mac OS. On both, KDE and Mac OS I use virtual desktops with ALT+# for switching between them. I also still use other i3 standard shortcuts in my current workflow (e.g. moving windows between desktops).
No, but when the default video was 4:3, I did try out tiling window managers and thought it worked fine, back then I used ratpoison and ion off and on.

On "modern" resolutions I find tiling tough to use, but on small screens (1368x768) I use cwm, I feel it is tailor made for those screens. Larger screens I use fvwm or fluxbox, depending on what I need to do.

ratpoison! That was my first tiling wm and no one could use my desktop casually anymore. I didn't mind :)
My productivity has never been significantly limited by my window manager
try alt-tabbing between three applications on mac
macOS’ window management experience is sad. How do people work like that?

I haven’t ever lost a window in the background before on any Linux WM/DE or Windows.

Limited, but how about improved?

If you spend time rearranging things, that's an area where they can help immensely

I spend maybe 5 minutes a day moving windows around. Not a lot of room to optimize.

The meme whenever dev productivity comes up is this picture of Jeff Dean — arguably one of the most productive programmers of all time — on a single monitor in a default Ubuntu environment: https://twitter.com/nufuau/status/1159007803316396038?s=20

I used to use esoteric dev environments but I think the net effect was negative on my productivity due to things breaking. Also, being comfortable in default environments means that you are better able to move between environments without a large productivity hit.

That's fair - no two people work alike. It's a net catching my inefficiency :D

I'm curious about the depths you've gone, to have breakage. I've found it isn't really common, but I'm pretty much just assigning 'class=SomethingSpecific' to always go to SomeWorkspace

Not really a big investment, isn't fragile, and saves me a few minutes of annoyance every day - setting up everything split/etc

It's also worth mentioning cognitive load - I never have to look/wonder. It's like those old machines where you could keep typing when it's all hosed up, knowing it'll catch up

Being able to move around is a decent point. Though again - we all differ. I haven't used a machine that's not my personal one in at least a decade.

If I did have to restore it, it's a git clone/curl/wget away - plus the packages :P

I felt dramatically more productive using bspwm (which is similar enough to i3) than I do on MacOS.

I couldn't tell you how much of it was the M1 being relatively new, having a better/different OS, and a different WM. I just know I liked it a lot, and I dislike using my Mac after that. Huge loss in morale, if not productivity.

Yes, i3 has inspired me to try yabai on macos. I have configured 6 workspaces and use command + <num(1..6)> to switch to different workspaces. Most of windows stay in full screen and it's quite better than manually resizing and dragging apps on multiple screens. To move a window to another workspace, just hold on to the top menu bar and press command + workspace number and your window will get moved to that workspace.

https://themythicalengineer.com/macos-window-management-yaba...

Similar setup for me, works pretty well!
I’m not currently using i3 (restrictions on using Linux at work). So having switched to i3 and then back from it, I can’t say whether I was faster or not with it.

What I do know is that I could maintain a flow state significantly better with it.

The combination of i3 and a workflow that was almost entirely centered around terminal based tools has been unmatched so far in my experience.

i3 was also particular helpful when I had a single 24in monitor. In a constrained monitor environment there was no comparison. Workspaces with easy switching made i3 far superior to the alternatives.

For me personally i3 is fantastic when I’m using the same tools across work sessions. If your tools are constantly changing I don’t think it’s as useful because you cannot build muscle memory for which workspace to switch to, to perform a certain task or access a certain app.

I don't care about speed. I like how convenient is it to organize and move windows around compared to floating window managers. Especially when using multiple monitors.

My hand gets tired if I use mouse too much especially with dragging operations. Using TWM and modal text editor helps a lot.

I really miss it on macos when I have lots of stuff open and have to switch between multiple windows. I haven't yet tried any tiling apps on mac because configuring is always a deep rabbit hole. I use Rectangle but having more than 1 window on a 13" screen isn't that useful and still requires manual arranging. A better control over workspaces is what I miss.

Use Yabai with SKHD. Configure if by telling ChatGPT to convert your i3 config to Yabai.
I have considered tiling wms, but after watching few youtube guides decided that it’s not worth the learning curve and configuration. Kept using FancyZones* instead. It can snap windows to pre-user-defined areas and cycle an active window through them with win-arrows. All you need really and zero rocket science.

* windows-only, couldn’t find linux analog anywhere including forums.

The window navigation experience is very fast, but when you weigh in overall reliability, I’d take Yabai on Mac any day.