-- Leo's gemini proxy

-- Connecting to shit.cx:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

        .     *  ⠈       +                ⠈
                   +  ──╕   ○    .   ⠈           ⠐
   ●     .           ╒═╕╞═╕ ╕ ╪═        *               .
                     ╘═╕│ │ │ │  .cx            +
           .     ....╘═╛╘ ╘ ╘ ╘═ ....:      ⠐        .
                 .               *                ⠐        .

Adjusting for Monterey: Spaces to Fullscreen Apps


2022-03-20T20:45


I got an email from work demanding that I upgrade my computer from MacOS Catalina to Monterey. I've allowed it to get so old because I realised a few years ago that every upgrade since Snow Leopard (2009) has made my computer worse. I decided to stop doing that. Until now, that approach had served me well. My computer has done what I've wanted and it's been stable and consistent.


But I did as I was told. I upgraded to Monterey. I tried to just upgrade to Big Sir but the CLI updater wouldn't work when I selected those versions. I don't know if that's something that doesn't work anymore, or if there's some sort of corporate policy applied to my computer preventing it.


Unsurprisingly, I was disappointed in the upgrade. It adds nothing that I want. At best, it's change for the sake of change. The differences that I've noticed are:


Fat title bars: not cool when you have a 19" monitor at 1280x1024.


A redesigned Notification Center: Don't care. I turn almost all of them off.


A Control Center: The old way was fine. I can't remove all the bullshit I don't want or need. I could probably pay for Bartender and revert to the old controls, but I keep the Menu Bar hidden so I don't care enough to fix this. The next version will probably remove the ability to have Wifi, Bluetooth and Sound controls directly in the Menu Bar. I'll just deal with it now. Fuck, I hate how MacOS makes me so resigned to this stuff.


Per-App settings to put the F-keys on the Touch Bar: I turned it on and found how often I hit the F-keys when typing numbers. The Touch Bar is dumb. I hate it.


I only use a very small part of MacOS, so this is by no means a complete list of differences. 95% of my time is spent in one of three apps; iTerm, Firefox or Slack and I switch between them using Cmd-1, Cmd-2 and Cmd-3, respectfully. I auto-hide the Dock and the Menu Bar. From iTerm, I SSH into my Debian machine where I work. My Mac isn't much more than a glorified thin-client with a local Web Browser and Camera. It's overkill for what I need, but I have no choice in my work computer.


My workflow is fairly unusual. I use very few apps; almost everything is in a terminal. I barely use Cmd-Tab. I only want to see one app at a time. The keyboard is my primary input. I don't use the Dock. I barely use the Menu Bar. I feel like I barely use MacOS. To do this, I use TotalSpaces to organise my windows into Spaces, Hammerspoon to manipulate the size and position of windows (and some other things) with key bindings, and Karabiner modifies the in-application Keyboard shortcuts.


Beginning with Big Sir, TotalSpaces has become incompatible and has broken a chunk of my workflow. It only offers one thing that Hammerspoon can't; it can remove the animated transitions when switching between Spaces. That shit makes me dizzy and is so disorientating. To get by, I uninstalled TotalSpaces, set the MacOS shortcut for Spaces to use Cmd-<number> and I turned on the "reduced motion" setting so it fades in/out as a transition rather than sliding. It worked but I was still annoyed that there even is a transition and I don't like the excess whitespace on my small display.


I realised that since I don't use a wide screen monitor anymore, Native Fullscreen totally fits my needs. A fullscreen app on a 24" widescreen was too big and I instead preferred to confine them to the centre two-thirds of the screen. Using Native Fullscreen apps rather than maximised windows uses my screen space far more efficiently and since I don't use the Dock or Menu Bar anyway, doesn't really detract at all. I felt that Native Fullscreen might actually improve my workflow. (This isn't a point for Monterey. I could have done the same with Catalina).


I spent a little time writing Hammerspoon config to try it out. I changed my maximise key-binding to one that enabled Native Fullscreen for the focused window:


hs.hotkey.bind({"cmd", "shift"}, "F", function()
    local window = hs.window.focusedWindow()
    window:setFullScreen(not window:isFullScreen())
end)

I then added some bindings to easily switch between apps with Cmd-<number>.


function focus_window(name)
    local application = hs.application.find(name)
    local window = application:mainWindow()
    return window:focus()
end

hs.hotkey.bind({"cmd"}, "1", function()
    focus_window("iterm2")
end)

hs.hotkey.bind({"cmd"}, "2", function()
    focus_window("firefox")
end)

hs.hotkey.bind({"cmd"}, "3", function()
    focus_window("slack")
end)

hs.hotkey.bind({"cmd"}, "4", function()
    focus_window("scapple")
end)

And the final requirement was to set my apps to Fullscreen upon launch. There are a few magic numbers in the code below to ensure that windows exist before they're modified. I could optimise it per app, but it's good enough for now.


return hs.application.watcher.new(
    function(name, eventType, application)
        if (name == "iTerm2" or name == "Firefox" or name == "Slack" or name == "Scapple") and eventType == hs.application.watcher.launched then
            hs.timer.usleep(400000)

            local window = application:focusedWindow() or application:mainWindow()

            hs.timer.usleep(200000)

            if window then
                window:setFullScreen(true)
            end
        end
end)

After using this config for about half a day, I ran into an issue; it's very awkward to use two Fullscreen windows from the same application. Often, I want to tear off a Firefox tab to share in a Google Meet. It isn't something I use constantly, but I do it nearly daily. The old way of using Spaces allowed me to lay out the windows side by side and Cmd-<backtick> would switch between them. Navigating between two fullscreen windows is difficult. Cmd-2 would send me to whichever Firefox window was last used. Neither Cmd-<backtick> nor Cmd-<tab> did anything. Only through Mission Control or Ctrl-<arrow> could I switch windows. Since the order in which the Fullscreen windows fall is pretty random, I would need to reorder them manually in Mission Control for the Cmd-<arrows> to work intuitively. Basically, using it that way sucks.


However, Fullscreen apps can be placed side-by-side in one Space using Mission Control. I can't see how you might do this with just the keyboard but I'm okay with using the mouse given how infrequently I need to do it.


The flow isn't totally polished yet — I've only used it for a couple of days — but I'm fairly confident that it's here to stay. I think I'll be able to work around any other problems I find, and I like that Native Fullscreen apps reduces the wasted pixels.


TotalSpaces

Hammerspoon

Karabiner

Bartender



---


More Posts Like This

Return to Homepage


The content for this site is CC-BY-SA-4.0.

-- Response ended

-- Page fetched on Wed May 1 22:21:44 2024