Hacker News new | ask | show | jobs
by kule 2015 days ago
Those that love using i3/tiling managers - what does your workflow look like?

I used Amethyst https://github.com/ianyh/Amethyst an auto-tiler on the mac for quite some time but finally gave it up recently. I loved the auto-sizing but there were little niggles on the Mac e.g. some windows really needed to be floating and layout oddities when certain windows expected more width.

I tended to find I was mostly just using spaces to keep apps I was interested full screen and using the occasional split. I was just cmd/alt-tab'ing between apps most of the time. When I did have content in multiple windows it was then a faff to try and get the two windows I wanted in the same space. I didn't feel like I was making the most of it.

I've since gone back to SizeUp https://www.irradiatedsoftware.com/sizeup/ and manually move windows to where I want them.

I feel like I wasn't and perhaps I'm still not using it as effectively as I could though hence the question.

2 comments

I use bspwm, which is similar to i3.

I mostly put 1-3 windows per workspace, and generally use one workspace per task. My "main" browser window is always workspace 1. My todo lists are always workspace 2.

I then have one workspace set up to default to floating windows for apps that tends to go crazy with them, like e.g. gimp.

The other workspaces are usually split into 2 or 3 windows, usually two columns with one window taking a whole column by itself and the other column split in two "half-height". E.g. if I'm working on a web app, the browser will typically take up the biggest window. But I also have keybindings set up to let me easily move the active window left/right/up/down (it will swap places with the displaced window). I tend to move windows into a bigger space more often than I resize them.

Getting windows in the same space is easy for the most part - windows open on the space I have active, but I have keybindings set up to move the active window to a specific workspace, and you can also define rules for bspwm that sets up predefined slots for windows that "swallow" windows that match certain criteria, if there are certain apps you always want on certain workspace for example.

Switching windows to floating if the wm doesn't get it right is also just a keypress away.

bspwm can be fully controlled with a command line tool, so I also have scripts that will read a JSON file specifying a layout and recreate it and start the appropriate shells, browsers etc. I use the same plus an alias to change the name of the workspace based on the "nearest" project file working up from the last change of working directory on a given workspace. It's not perfect, but it means that e.g. if I "cd" into a project, the workspace name changes to reflect the project name, which does tend to make it easier to keep track of what I've put on which workspace.

Thanks for the detailed reply, really appreciate it. I'm gonna have a play with my setup and experiment along those lines.
i3 has a great feature I use all the time--tabs. I don't use a lot of workspaces since that leads me to context-switch too much, but when I want everything visible on a single workspace, I use tabs. You can also select the parent group and move them around workspaces or displays as a single unit.