I spend some time thinking about my workflow - what’s good about it, and what could be better. One of the things I’ve been thinking the most about recently is window management. On my laptop I use OS X, which has a window management paradigm that is fairly familiar to people who have used a computer in the last few decades. At work, I use i3, which is my favorite tiling window manager.
I like the i3 way of doing things for the most part, but I realized that I spend a lot of time thinking in trees of heterogeneous windows.
As an example, on my worst days, I might have 6 i3 desktops actively being used. On most of these desktops, I’ll have a set of terminal windows. I rarely use the terminal emulator’s tab system, but I do almost always use tmux. So I have a set of tmux tabs, inside of which are sets of panes. Several of these windows will contain vim sessions. The vim sessions have their own sets of tabs, and each of these tabs can contain multiple windows.
So that’s, like, a tree of maximum depth 6?
I’m bad at holding these trees in my head. I’m a lot better at holding 2d spaces in my head.
If I wrote a window management system, it would have the following properties: