161: Setup App Showdown

1 Like

Do any of these apps automate moving windows across desktops (as in a single display with multiple desktops). I travel a lot so usually end up working from my laptop and like to have different apps on different desktops.

Have a read of these:

Associate an app with a space

Use Keyboard Maestro to move an app to a space

Automating window management across spaces

You can use Bunch and Moom to arrange apps and windows across multiple desktops/spaces.

My morning Bunch opens eight apps across my ten spaces (and does some other things).

This post, from the last linked thread in @sylumer 's prior post explains how.

As far as I know, no window manager can configure windows across spaces. Thus you need to move to a space, open apps and folders, configure, and then move to the next space and repeat, which can be automated.

I am surprised that the show notes include @sylumerā€™s excellent Alfred workflow Bypass for Shortcuts, but did not mention his just as useful Cluster workflow for Bunch.

It is the primary way I interact with Bunch these days. Highly recommended.

2 Likes

Another addition, for anyone using saved layouts in Moom for their setups, you might also be interested in yet another of my Alfred workflows I released last month. A much smaller feature set than Cluster :wink:

I do create lots of other stuff, not just Alfred workflows - honest!

Moom-ing gives you quick access to create and trigger layouts via Alfred, which can help with set up and testing for your Setup App configurations, as well as giving you quick reuse of the layouts when not triggering via Bunch/Keyboard Maestro/Shortcuts/etc.

Where are the shortcut and other file downloads from this weekā€™s episode?

The shortcut is the last link entry in the show notes.

What other files are you expecting/looking for specifically?

The last link says ā€œjournaling setupā€. I was looking for the general window layout setup script with Moom called from shortcuts shortcut. Is that the same thing?

So the Shortcut being shared was the one using Shortcuts only to move windows around.

The references to being able to use Moom for moving windows referenced the use of AppleScript and that you can add an AppleScript step in to a shortcut. They also referenced that there happens to be explicit mention of the AppleScript in the Bunch documentation as that is one of the Bunch recommended option for window layout management.

The idea is that in Moom you create a window layout and save it, then you call that by AppleScript.

So for example, if I had a window layout called ā€œAutomatorsā€ save in Moom, I could use a line of AppleScript to trigger it:

tell application "Moom" to arrange windows according to snapshot "Automators"

In a Shortcut, you could just paste this into a Run AppleScript step, but you can make it a little more generic and keep a flow with something like the following:

Was that the only thing you were looking for, because you mentioned files plural in the earlier post?

Yes - butā€¦

This episode got me motivated to set aside some time to go deeper into window layouts and setups.

I have Moom, Better Touch Tool (BTT), and Keyboard Maestro (KM) but have only dabbled haphazardly with all of them doing a few quick things.

Iā€™m capable of using Shortcuts, Applescript, or even shell scripts but have avoided them due to, honestly, laziness and not wanting to work on automation instead of working on work.

But recently, Iā€™ve upgraded my computing environment from Intel 27" iMac retinas and MacBook Pro to a Mac Studio with Studio Display and replacing several other aging machines with a new MacBook Air 15" running in clamshell to another Studio Display.

So I now have an interest in sorting all this out for window layouts and setups. Iā€™m also experimenting with using an iPad as a second monitor when in desktop mode so now realize I have the complexity of several different screens, different resolutions, and perhaps wanting the same context setups, but running on different physical setups and wishing it was all magically controlled by a self-configure setup tool of some kind.

(I was intrigued by their mention of using screen pixel math in KM to dynamically place windows based on system/screen size.)

So - starting from the top, looking for advice on the best tool or tools and methodologies to use.

I realize boiling the ocean on the first go is wrong and should start building straightforward setups/window layouts and grow, but wondering which tool/tools to start so I donā€™t have to do a reset at some point because I outgrow what the tools can do.

There was a lot of advice given on this in the episode.

As noted by Rose and David, and suggested by your post, the variation in layout might be the key consideration in complexity.

How frequently will you change your available monitors and screen resolutions?

Not often, just use Moom, it will be quick and easy.

Often, consider brining in Keyboard Maestro and using either the conditional logic alongside Moom, or go all in and do relative calculation and pixel positioning.

As for BTT, it has a good feature overlap with Moom, so you could potentially substitute that in for Moom.

https://docs.folivora.ai/docs/100_window_snapping_chapter.html

However, BTT tends to be overly fiddly in my opinion (I like the app, I do not like the UI), and is only partially documented (a classic developerā€™s trap), so I would expect more effort over using Moom, but I have never used it beyond the basic window snapping feature (which I do use).

Agreed, they planted a lot of overlapping roads and paths, but only a few good signposts on how to choose. Typical techie paradox of choice.

Iā€™ve also found BTT useful for touchpad window snapping gestures and already frustrated by the non-standard configuration/settings methodology.

Just a little hesitant that Moom is too simplistic so maybe I should do basic positioning with KM and slowly evolve from there as KM can handle everything as I dive deeper into it.

Moom has layout snapshots, so you set your windows up exactly ho you want them, snapshot them, then Moom can restore the layout at any time.

So not dynamic, but again this just comes back to my earlier question to you of how often you change the number/arrangement of your monitors and screen resolutions. if you donā€™t change them, then Moom will save you a lot of time having to fiddle (which you said you didnā€™t want to do).

If you are cycling between a couple of options, then a combo of Keyboard Maestro controlling Moom would be a sweet spot.

If you vary things regularly and significantly, then a complex and sophisticated Keyboard Maestro approach is probably the ideal.

Being clear on your underlying requirements is key to getting the right info to enable make the best decision based on the best information - at least if you arenā€™t carrying out a first hand assessment and open exploration of the options.

1 Like

Thanks!

I believe a few hand-crafted layout snapshots with Moom for the two different screen sizes I primarily use should be sufficient for me to get going and then fine-tune a few months later.

1 Like

I connect to a few different monitor configurations, and Moom weirds out saying that it canā€™t apply the snapshot if there are less monitors than when the Moom snapshot was configured. I came to the same kind of conclusion when listening to this episode - just test the number/type of monitors in Keyboard Maestro, then fire off some applescript to tell Moom to run a setup that is specific to that monitor configuration. This requires some advance planning, which Iā€™m not quite sure is worth the effort. The gist of the episode was to spend a little time putting in the effort, but I also think Moom should build in some clever logic to handle the situation better.

Curious, I regularly switch between three and four monitors and I do not see this behavior. I just tried it now with a snapshot configured for four monitors with only three connected, and there was no error message generated. Of course, there were windows that did not move to the predefined position.

My mistake, now that I have experimented with my setup a bit, Moom cannot move windows that are full screen, even if I full screen the app, update the snapshot in that state and then try applying the snapshot again, Moom responds as below

Snapshot Doesnā€™t Apply
This window layout snapshot doesnā€™t apply to the windows you have currently open. Would you like to save a new snapshot now?

I guess I could surrender a few pixels and run that app so itā€™s not in full screen. Replace user and press any key!

I believe that this is because full screen apps are considered to have their own ā€œspace/desktopā€ and there is no mechanism to move windows or apps from one space to another.

1 Like

You need to be mindful that a little bit of clever logic may not cut it at volume.

Letā€™s say I have a 3 screen setup and drop to 2 screens. The third screen normally ran with say a split between a calendar app and a social media app. What is the logic that should be applied? Person A might want to squeeze everything up horizontally. Person B might want to move them to the left two quadrants on screen 2. Person C might want them I the right 2 quadrants on screen 1, but flipped the other way around. Person D ā€¦and so on. What might be the ā€˜logical thing to doā€™ for one person is not the same as the logic the next person would apply.

I personally think it is best as is. You change your setup you define what that means for you in that setup.

For me Iā€™m either MacBook + 2 monitors of differing sizes, but consistent layout, MacBook + portable screen, or MacBook on its own. Iā€™ve not needed to invest just yet in layouts for anything other than my at desk three screen setup, but if I do, my plan is to set up different snapshots for each screen environment I need (set up on first need). Iā€™m using Bunch, so Iā€™ll inevitably tie them into that for key setups, and I expect I will either end up going with bunches that incorporate a standard open things set of bunch commands (ref. snippet) then vary the Moom layout to call based on which main bunch I openā€¦

e.g.

  • Snippet ā€œMainXā€ opens three apps.
  • Bunch ā€œMainXā€ includes snippet ā€œMain Xā€ and runs my Moom 3 screen layout for ā€˜MainXā€™
  • Bunch ā€œMainX Altā€ includes snippet ā€œMain Xā€ and runs my Moom 1 screen layout for ā€˜MainXā€™

ā€¦ or ā€¦

I go with a custom dialog and use that to prompt me each time.

ā€¦ or ā€¦

I build some logic out in Keyboard Maestro and call that from Bunch with a base layout name, and keeping some sort of naming convention on my Moom layout sets, have Keyboard Maestro run the layout based on number of screens, wifi network name, screen resolution, etc. to let me determine what my setup is now of in the future - e.g. if I end up just switching to one additional screen, but I could be at home with a big screen, at work with a smaller screen, or on the road with an even smaller portable screen.

My gut feel is I would start with snippets, and then if I find I am more regularly swapping screens, Iā€™d invest some time in the Keyboard Maestro approach. I think the custom dialog would only be better than the snippet option if I had a lot of choices and a lot of variations such that I couldnā€™t necessarily remember which Bunch to launch based on my own naming convention ā€¦ but I just doubt Iā€™d hit that volume where it might make more sense before I just went the Keyboard Maestro route.

I think at the end of the day my own logic for my own layouts would always win over someone elseā€™s logic trying to ā€˜guessā€™ my layout preferences in a given scenario - even if it is more effort for me to cater for. Honestly Moom makes it ridiculously easy to make a new layout snapshot and save it, so the overhead is likely minimal and they can develop over time as new apps are introduced, existing app UI and layouts changes, etc.

2 Likes