On a recent Accidental Tech Podcast member special, John Siracusa walked through his window management strategy. It was a fun episode, going over how John tends to have many (I think honestly over a hundred) windows open at the same time on his Mac using a single space and monitor. He does a lot of window sizing and arrangement that allows for easy click handles because of how windows freeform overlap that’s pretty neat. I can’t say it’s having a big impact on how I work, but I can say it made me think again about how I set up my computing world.

Similarly, on the most recent episode of the same program, the “after show” (not gated) was about why two hosts, Marco and John, don’t use multiple monitors. I found myself largely nodding along at their rationale as someone whose journey was quite like Marcos– back in 2005, I was using 2 x 17" LCD monitors and desperate for space, but somewhere around the 27" monitor time I switched to a single monitor with no desire for more.

Unlike John and Marco, I heavily use a macOS feature called spaces which is a part of the feature known as Mission Control. This feature is more generally known as “virtual desktops”. If you haven’t used virtual desktops before, the best explanation I can provide is imagine having two screens and setting up your window just so. Now imagine instead of those screens being physical an always present, you can use a keyboard shortcut or gesture to swap those screens. Now imagine there is no limit to the number of these screens you have. That’s virtual desktops.

I first used virtual desktops in the fall of 2006 at the Sun Lab at Brown University. There was some Debian-flavored minimal Linux distribution used on each of those computers used for computer science classes. 1 The default window management system was a very plain setup of fvwm. But one thing that was there by default was a 3x3 grid of nine virtual desktops. I wish I had taken a lot more with me from that computing setup than I did, but one thing I immediately wanted to emulate were these virtual desktops. I immediately downloaded some cracked software to do this on my Windows machine, and it was one of the driving forces that led me quickly to use Linux at home.

I still miss when macOS permitted spaces to be setup in a 2x2 grid rather than a ribbon of infinite spaces. And I still miss the 3x3 grid setup I used for years. But I know so many people who use Macs and never use spaces. So I thought I’d document a little bit about how I use them here.

Big Picture

I’ll describe a bit about each of my four “desktop types” below. But overall, I have an “email” screen to my left, a “primary screen” with the majority of my communications and browsing, followed by any number of “focus” or “work” screens to the right, ending with a set of “fun” screens that contain things like Music or other apps I occasionally switch to for control purposes.

Email

I use three apps right now for email– Mail.app, Mimestream, and Outlook. This is because my personal email is on Fastmail, I have some email accounts on Gmail (including my old work account) and my new work email is Outlook only. I used to just have Mimestream and Mail.app on this page, but the addition of Outlook is a new necessity. I don’t mind Outlook the app very much, but I do hate the service. That said, I put email all together because it’s a thing I want to intentionally go to, not a thing I want in my face all the time. That said, I do frequently need to go to email, so I like having it close at hand. During the workday, when I’m not in any focus modes, my work email can send me a notification on my Mac– not my phone, and not my watch. I can decide from there to head left, take care of it, and back right out of email. Out of sight, mostly, and mostly out of mind.

Primary

I spend a good chunk of my time on my so-called “primary” screen which is actually very work light. This is actually my “communications center” where I have Slack, Messages, some social media for scrolling, and my main browser windows. Any time I’m doing work that’s web-based or communications oriented, this where I live. As a manager in these modern times, most of my work is communications or web oriented. Any form of non-focused work happens here, and it’s my “home base” for computing. It’s messy, and there’s a lot of ephemeral stuff that ends up on this page, but the above diagram has most of the “almost always open” stuff on it, roughly how I arrange things.

Focus

I have any number of “focus” screens at any given time depending on my work. This is often Nova, RStudio, or iAWriter, for general coding, R coding, or writing. But it also can be a ton of iTerm 2 windows, browsers, or any combination of the above. This is space for focus tasks. By putting this to the right of “primary”, in my brain, moving left is moving “up” the distraction tree. Moving right is largely moving into more focused, digging in tasks. I almost never have more than three focus desktops and I strive for a single one. This is the one thing I’m meant to be working on, with everything setup to focus on that once I’m in that space, and no other distractions. If I need a browser for my work, the browser window in this space is only task related browsing.

As a general rule, if I expect a task to take more than 30 minutes, I move it into a focus space.

The exceptions to “right is focus”

All the way to the right, at the end of my chain, are applications that I lightly interact with but want open. Things like Apple Music or MarsEdit often live out here open in their own spaces. While I’m showing these windows as “overlapping”, these are often one-space apps. I sometimes want a full view of my calendar in Fantastical to do more complex scheduling. I sometimes want to browse Apple Music versus just hitting play/pause/love/next (all of which I can do from a keyboard layer or the Stream Deck). I sometimes want to write a long blog post.

Conclusions?

I’m not sure if I have any, but this is a rough view into how I work. I’d love to hear from others about their setups.

I wish I could have used the actual ASCII versions of the images above, but I was not willing to rework my site theme to make them appear well. These were all made with Monodraw and exported as SVGs. I then used neovim to replace rgb(0, 0, 0) with rgb(255, 255, 255) so that they would work with my dark-mode only website. All of this is bad and I feel bad, but I didn’t have the patience to figure out a better option on a Sunday afternoon.


  1. It’s funny to think of computer science classes having lab setups like this. It was truly much easier to do your programming and homework on this setup. For one, macOS was still not that popular and Windows didn’t have anything like WSL. So working in a Unix was huge. For another, the amount of tooling required to setup a machine for the right development environment, especially so that you could submit your code in an automated way and have it checked and graded would have been a huge pain. I bet this lab does not exist anymore and is hardly necessary. But I’m glad it existed at the time, because I suspect the burden of setting up a clean, solid development environment on my desktop would have been a nightmare. This is also what took me from Linux curious to daily Linux user– right after that class I took the plunge and dual boot the desktop I built and rarely went into Windows. My IBM T43 laptop, which I bought in part because of its Linux compatibility even before I was using Linux, went fully Linux soon after. ↩︎