Hacker News new | ask | show | jobs
by profsnuggles 2017 days ago
You may be talking about auto-tilers like xmonad. Those are the devil (joking, sorta). My favorite tiling window managers in order of preference would probably be exwm (emacs wm) -> stumpwm -> ratpoison -> i3.

These are manual tiling wms. So in exwm I can chose how to position and resize my windows any way I want. For example I can hit C-x 3 to split my screen in half vertically then C-x 2 to split one of the vertical splits horizontally. Now I have

  +----------+-----------+
  |          |           |
  |          |           |
  |          +-----------+
  |          |           |
  |          |           |
  +----------+-----------+
I can resize the vertical and horizontal splits, add or remove splits and cycle between the splits and the windows they display with regular emacs commands. The only thing you can't do is have windows overlap so you can only see part of their contents. i3 comes last in my preferences because it adds a bit more friction to this with it's concept of containers.

It seems to me like that covers 99% of use cases. I don't see very much value in being able to only see some of a window when it is being overlapped. Especially when if I need to see only a few lines of a window it would only be a few keystrokes away. Maybe C-o 2 C-x 3 C-x - C-x b window title which looks crazy but if you are a heavy emacs user with ace-window and ivy mode it's very natural.

3 comments

I think this is the most popular setup for tiling window managers, I use my terminal windows in this configuration as well (on a separate display). However, on my main display, I can't imagine going like this, most because:

- macOS "Zoom" functionality already takes care of the optimal content size.

- For websites, above zoom functionality works fine, but I prefer to manually resize my browser, since nearly all websites today have responsive design, and resizing gets rid of all the unnecessary parts, like sidebars, large margins etc. All I have left is the content.

- Today most application GUIs are way too bloated. I usually disable whatever I do not need, and use the macOS global menu search functionality a lot. I can reach any feature I want with a few keyboard clack. This way I can use software with minimal screen estate.

- If things get a bit crowded, Mission Control (Exposé) feature allows me to see what's going on very easily. macOS trackpad features also help a lot, with intuitive multi-finger gestures to see MC, show desktop, or show individual application windows.

- As a personal taste, I like to take the desktop metaphor a tad more seriously. I like to have file clusters on my desktop without the limitations of a grid, and file them to a folder later on when I'm done. Imagining my desktop as a real desktop just makes me more productive. I really cannot imagine myself using any other system other than macOS or Haiku just for this reason.

> For websites, above zoom functionality works fine, but I prefer to manually resize my browser, since nearly all websites today have responsive design

If you've already reached this milestone of enlightenment and you're already using a tiling window manager elsewhere, I'd recommend you not make an exception for web browsing.

I don't even use a tiling window manager, just Gnome's rudimentary support for resizing a window and placing it to take up the left half of the screen or the right half, and I do easily 98+% of my browsing this way, with two half-width browser windows. (The rest involves temporarily maximizing a window because the website's layout is busted.) So browsing, too, is also very compatible with tiling.

Wow. I think this may be the first time in almost 2 decades that I’ve come across someone ego finds that Zoom actually works for them.
"The only thing you can't do is have windows overlap so you can only see part of their contents."

With i3 you can do exactly this by telling i3 to float a window. Windows can be floated automatically (by matching titles or other X properties) or manually through a keyboard shortcut.

But KDE allows all this _and_ allows windows to overlap. There are keyboard shortcuts for "take the left half of the screen" and "move focus to the window left of this one". How many windows does a typical i3 user have open anyway?

For tiling terminal apps, I just use the tiling feature of KDE's Konsole, and used to use Terminator.

I'm a devops/sre type so, on my main (ultrawide) screen I have a browser 50% right, then 2 columns of terminals (usually vim) 50% left usually with 2 per column, often 3, sometimes stacks of the same under each other. This can be duplicated across workspaces as needed for different codebases.

Often I'll find I need to make arbitrary layouts on the fly when debugging an issue or responding to an outage, I can do this without having to engage my brain or reach for my mouse.

Can you do the same with floating WMs? Absolutely but you will probably need to think about, breaking your thought process. For me the i3 just does what I need it to without having to engage my brain or reach for the mouse.

If you're already running Linux I'd highly suggest giving i3 a go, it's hard (for me) to explain how it changed the way I interact with my computer and how much it improved my workflow. I think about the closes I can get is that it's like learning vi, sure nano can get text into a file but once you're used to vi you're going to be far more efficient.

As a VIM user I completely understand the sentiment of just having the machine do what you want it to do without having to engage the brain. Thank you for the recommendation.
"How many windows does a typical i3 user have open anyway?"

I have no idea I, just told you I use emacs as my window manager. Pretty sure that I don't come even close to any definition of typical.

A few things though. Every window manager I listed can do floating windows if you want. (Maybe not ratpoison) In my opinion overlapping windows is an anti-feature but it's possible for people with differing opinions.

It's a matter of workflow I suppose. I want tiling first. When I open a new program I want it to open in my currently focused tile every time. If I have a window in another tile, or not visible, I want to hit a couple keys and bring it into my focused tile. Not have to faff around switch to make a different window active and then re-tile it.

So sure you can use a floating wm as a tiling wm, sorta. And you can use a tiling wm as a floating wm, kinda. Pick the method you are going to use the most start there and then maybe throw in a little floating/tiling if you like.

I just wanted to point out about manual tiling managers. It seems like when tiling wms come up people say they tried xmonad or awesome and didn't like it. I absolutely hate auto-tiling managers but I like other tiling window managers.

Thank you. My query was not only to you but also to the HN crowd in general, and a few people have answered back. It is interesting seeing the different use cases. Thank you.
Quick count of how many I used to have open.

10 Workspaces. 2 GTD workspaces (Personal and Work...I know you shouldn’t separate them, but that’s how I liked it). That’s 10 Windows total.

3 main development workspaces, each with 2 terminals. 6 more.

2 Secondary development workspaces with 4 Windows each (for running search/git/tail, etc). 8 more.

2 browser workspaces with 3 browser Windows total.

1 other workspace for ad hoc tools. 1 window.

So about 28 Windows on a single monitor.

I see, thank you.
i3 and sway also allow windows to overlap, which is a very useful thing to do (eg for pop up boxes, pop up menus, etc.).

It’s just not the default.

If I want to work on N windows at a time, i3 handles their tiling semi-automatically. All windows that I’m not currently using are pushed into different workspaces.