<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Leonid Shutov</title>
    <link>https://shuleo.com/</link>
    <description>Recent content on Leonid Shutov</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <webMaster>leonid.shutov@hey.com (Leonid Shutov)</webMaster>
    <lastBuildDate>Thu, 26 Mar 2026 14:40:12 -0400</lastBuildDate>
    
	<atom:link href="https://shuleo.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    
    <item>
      <title>How to manage windows on Mac</title>
      <link>https://shuleo.com/posts/window-manager-mac/</link>
      <pubDate>Thu, 26 Mar 2026 14:40:12 -0400</pubDate>
      <author>leonid.shutov@hey.com (Leonid Shutov)</author>
      <guid>https://shuleo.com/posts/window-manager-mac/</guid>
      <description>&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#why-you-need-a-window-manager&#34;&gt;Why you need a window manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#how-to-set-up-a-window-manager&#34;&gt;How to set up a window manager&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;why-you-need-a-window-manager&#34;&gt;Why you need a window manager&lt;/h2&gt;
&lt;p&gt;If you already know the answer, feel free to jump straight to the &lt;a href=&#34;#how-to-set-up-a-window-manager&#34;&gt;setup guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If not, I’ll try to convince you that the built-in ways of navigating windows on macOS are… not great. Unless you only ever use 1–2 apps—in that case, honestly, you probably don’t need this article.&lt;/p&gt;
&lt;p&gt;Let’s look at what macOS gives you out of the box.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;command---tab&#34;&gt;Command (⌘) + Tab&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/command_tab.gif&#34; alt=&#34;Command(⌘) + Tab navigation method&#34;&gt;&lt;/p&gt;
&lt;p&gt;The classic. The OG.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Command (⌘) + Tab
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This how everyone switches between apps.&lt;/p&gt;
&lt;p&gt;And it works… until you have more than a handful of them open.&lt;/p&gt;
&lt;p&gt;At that point, you’re just tapping &lt;code&gt;Tab&lt;/code&gt; over and over like you’re spinning a roulette wheel hoping to land on the right app. The more apps you have, the worse it gets. Technically speaking, it’s &lt;strong&gt;O(n)&lt;/strong&gt;—practically speaking, it’s annoying.&lt;/p&gt;
&lt;p&gt;Also, it only works at the &lt;em&gt;app&lt;/em&gt; level. Got 5 Chrome windows? &lt;code&gt;Command (⌘) + Tab&lt;/code&gt; will only get you to the most recent window.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;code&gt;Command (⌘) + Shift + Tab&lt;/code&gt; just spins the wheel the other way. Still a wheel.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h3 id=&#34;cycling-windows-within-an-app&#34;&gt;Cycling windows within an app&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/cycle.gif&#34; alt=&#34;Cycle windows of the current application&#34;&gt;&lt;/p&gt;
&lt;p&gt;You can press&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Command (⌘) + ` (backtick)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;to cycle through windows of the current app.&lt;/p&gt;
&lt;p&gt;This is a nice complement to &lt;code&gt;Command (⌘) + Tab&lt;/code&gt;, but it has the exact same flaw: it doesn’t scale. More windows = more key presses.&lt;/p&gt;
&lt;p&gt;So instead of solving the problem, it just moves it one level deeper.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;app-exposé&#34;&gt;App Exposé&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/app_expose.gif&#34; alt=&#34;App Exposé&#34;&gt;&lt;/p&gt;
&lt;p&gt;App Exposé shows all windows for the current app.&lt;/p&gt;
&lt;p&gt;You can trigger it with&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Control (⌃) + ↓
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or a three-finger swipe down.&lt;/p&gt;
&lt;p&gt;Visually, this one is actually pretty nice. You see everything at once. No guessing.&lt;/p&gt;
&lt;p&gt;But now you have to use your mouse (or trackpad) to pick a window.&lt;/p&gt;
&lt;p&gt;And once you go back to the mouse, your workflow slows down immediately. It’s just how it is.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;mission-control&#34;&gt;Mission Control&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/mission_control.gif&#34; alt=&#34;Mission Control&#34;&gt;&lt;/p&gt;
&lt;p&gt;Mission Control (&lt;code&gt;F3&lt;/code&gt;) or&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Control (⌃) + ↑
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or a three-finger swipe up shows &lt;em&gt;everything&lt;/em&gt;: all apps, all windows, all desktops.&lt;/p&gt;
&lt;p&gt;Looks powerful. Feels powerful.&lt;/p&gt;
&lt;p&gt;But then you try to actually use it.&lt;/p&gt;
&lt;p&gt;Two problems show up pretty quickly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows move around, so you can’t build muscle memory. You’re always scanning the screen like “where did Tim Cook put my window this time?”&lt;/li&gt;
&lt;li&gt;You still need the mouse to pick anything.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So yeah, it’s great for &lt;em&gt;seeing&lt;/em&gt; everything, not so great for &lt;em&gt;quickly switching&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;multiple-desktops-spaces&#34;&gt;Multiple desktops (Spaces)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/desktop.gif&#34; alt=&#34;Multiple desktops&#34;&gt;&lt;/p&gt;
&lt;p&gt;Multiple desktops (Spaces) sound like a power feature.&lt;/p&gt;
&lt;p&gt;By default,&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Control (⌃) + ← / →
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;or a four-finger swipe.&lt;/p&gt;
&lt;p&gt;Which means—you guessed it—more cycling.&lt;/p&gt;
&lt;p&gt;The more desktops you have, the more steps it takes to get where you want.&lt;/p&gt;
&lt;p&gt;What you &lt;em&gt;really&lt;/em&gt; want is direct shortcuts like “jump to desktop 5”.&lt;/p&gt;
&lt;p&gt;macOS almost gets there.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/switch_desktop_2.png&#34; alt=&#34;Switch to desktop&#34;&gt;&lt;/p&gt;
&lt;p&gt;You can assign shortcuts for Desktop 1 and Desktop 2.&lt;/p&gt;
&lt;p&gt;That’s it.&lt;/p&gt;
&lt;p&gt;Desktop 3? 4? 10? Nope.&lt;/p&gt;
&lt;p&gt;Fun fact: older macOS versions actually allowed more:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/switch_desktop_4.png&#34; alt=&#34;Switch to desktop&#34;&gt;&lt;/p&gt;
&lt;p&gt;(Found on &lt;a href=&#34;https://apple.stackexchange.com/a/391831&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;apple.stackexchange.com&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Why reduce it from 4 to 2? No idea.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;stage-manager&#34;&gt;Stage Manager&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/stage_manager.gif&#34; alt=&#34;Stage Manager&#34;&gt;&lt;/p&gt;
&lt;p&gt;And finally, &lt;strong&gt;Stage Manager&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Apple’s latest attempt at improving window management.&lt;/p&gt;
&lt;p&gt;It puts your windows on the side, groups them nicely.&lt;/p&gt;
&lt;p&gt;But once you actually try to use it, you realize it’s mostly a mouse-driven feature again.&lt;/p&gt;
&lt;p&gt;Which means it doesn’t really solve the main problem: speed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;summary&#34;&gt;Summary&lt;/h3&gt;
&lt;p&gt;At this point, a pattern should be pretty obvious:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Too much cycling&lt;/li&gt;
&lt;li&gt;Too much guessing&lt;/li&gt;
&lt;li&gt;Too much mouse&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That’s exactly what a proper window manager fixes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;how-to-set-up-a-window-manager&#34;&gt;How to set up a window manager&lt;/h2&gt;
&lt;p&gt;At this point, we know what we &lt;em&gt;don’t&lt;/em&gt; want.&lt;/p&gt;
&lt;p&gt;So let’s define what we &lt;em&gt;do&lt;/em&gt; want:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apps open automatically when your Mac starts&lt;/li&gt;
&lt;li&gt;Instant switching between them&lt;/li&gt;
&lt;li&gt;Performance that doesn’t degrade as you open more windows&lt;/li&gt;
&lt;li&gt;Predictable layout (so you build muscle memory)&lt;/li&gt;
&lt;li&gt;Zero mouse required&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;choosing-a-window-manager&#34;&gt;Choosing a window manager&lt;/h3&gt;
&lt;p&gt;If you’re coming from Linux, you’ve probably seen tools like &lt;code&gt;i3&lt;/code&gt;, &lt;code&gt;dwm&lt;/code&gt;, or &lt;code&gt;Hyprland&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;macOS doesn’t have &lt;em&gt;that&lt;/em&gt; level of ecosystem, but there are still a few solid options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aerospace&lt;/li&gt;
&lt;li&gt;Yabai&lt;/li&gt;
&lt;li&gt;Amethyst&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I went with &lt;a href=&#34;https://github.com/nikitabobko/AeroSpace&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Aerospace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;Because it does everything I need &lt;em&gt;without&lt;/em&gt; requiring you to disable SIP (System Integrity Protection). If you’re on a work laptop, that alone makes the decision for you.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;what-we-are-trying-to-achieve&#34;&gt;What we are trying to achieve&lt;/h3&gt;
&lt;p&gt;Here’s the setup we’re aiming for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When you start your Mac → your apps open automatically&lt;/li&gt;
&lt;li&gt;Each app goes to its own workspace&lt;/li&gt;
&lt;li&gt;Each workspace has a label (like &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;You jump between them instantly with &lt;code&gt;Option(⌥) + label&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So for example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browser is on workspace &lt;code&gt;B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You press &lt;code&gt;Option(⌥) + B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;You’re there instantly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No cycling. No guessing. No mouse.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;The easiest way to install Aerospace is via &lt;a href=&#34;https://brew.sh/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Homebrew&lt;/a&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install --cask nikitabobko/tap/aerospace
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id=&#34;first-launch&#34;&gt;First launch&lt;/h3&gt;
&lt;p&gt;After installing, you’ll find &lt;strong&gt;Aerospace&lt;/strong&gt; in your Applications folder.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/aerospace_installed.png&#34; alt=&#34;Aerospace installed&#34;&gt;&lt;/p&gt;
&lt;p&gt;Open it like any other app.&lt;/p&gt;
&lt;p&gt;The only permission it needs is &lt;strong&gt;Accessibility&lt;/strong&gt; access. This is how it controls and arranges windows.&lt;/p&gt;
&lt;p&gt;Go to Settings → grant the permission → launch Aerospace again.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/aerospace_permissions.png&#34; alt=&#34;Aerospace permissions&#34;&gt;&lt;/p&gt;
&lt;p&gt;Once it’s running, you’ll see a new icon in the menu bar.&lt;/p&gt;
&lt;p&gt;On first launch, it’ll most likely show &lt;code&gt;1&lt;/code&gt;. That means you’re on workspace &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://shuleo.com/aerospace_icon.png&#34; alt=&#34;Aerospace icon&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;basic-moves&#34;&gt;Basic moves&lt;/h3&gt;
&lt;p&gt;Let’s actually use it.&lt;/p&gt;
&lt;p&gt;Go to workspace &lt;code&gt;1&lt;/code&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Option(⌥) + 1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Move the current app to workspace &lt;code&gt;2&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Option(⌥) + Shift + 2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Switch to workspace &lt;code&gt;2&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Option(⌥) + 2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Go back and forth:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Option(⌥) + 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Option(⌥) + 2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can also use letters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move app → &lt;code&gt;Option(⌥) + Shift + B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Jump → &lt;code&gt;Option(⌥) + B&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&#34;configuration&#34;&gt;Configuration&lt;/h3&gt;
&lt;p&gt;The default configuration provided by &lt;strong&gt;Aerospace&lt;/strong&gt; covers all we need for our basic setup. The only 2 things we want to add are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Opening predefined applications on startup&lt;/li&gt;
&lt;li&gt;Assigning these applications to their own workspaces&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 1: copy the default config&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We need to re-create the &lt;a href=&#34;https://nikitabobko.github.io/AeroSpace/guide#default-config&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;default config&lt;/a&gt; to make changes on top of it. The easiest way to do it is by executing this command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp /Applications/AeroSpace.app/Contents/Resources/default-config.toml ~/.aerospace.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now open &lt;code&gt;~/.aerospace.toml&lt;/code&gt; in your favorite text editor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: start Aerospace on login&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Make sure that this is set to &lt;code&gt;true&lt;/code&gt;. We want aerospace to be the first application to be launched.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Start AeroSpace at login&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;start-at-login&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Step 3: launch apps on startup&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Define which applications should be opened once aerospace is launched. Update &lt;code&gt;after-startup-command&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;after-startup-command&lt;/span&gt; = [
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exec-and-forget open -a &amp;#34;iTerm&amp;#34;&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;exec-and-forget open -a &amp;#34;Microsoft Edge&amp;#34;&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now iTerm and Edge open as soon as aerospace is ready.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can use &lt;code&gt;aerospace list-apps&lt;/code&gt; to see the names of applications which are currently opened.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Step 4: assign applications to workspaces&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Add these rules to the config:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[[&lt;span style=&#34;color:#a6e22e&#34;&gt;on-window-detected&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;if&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;app-id&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;com.googlecode.iterm2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;run&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;move-node-to-workspace 1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[[&lt;span style=&#34;color:#a6e22e&#34;&gt;on-window-detected&lt;/span&gt;]]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;if&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;app-id&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;com.microsoft.edgemac&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;run&lt;/span&gt; = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;move-node-to-workspace B&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here Application ID is mapped to workspace label. This means that as soon as these applications open they immediately get assigned to their workspaces.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Again, &lt;code&gt;aerospace list-apps&lt;/code&gt; is very useful to see Application IDs of currently opened applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;My full config for reference&lt;/strong&gt;: &lt;a href=&#34;https://github.com/leonid-shutov/.dotfiles/blob/mac/env/.config/aerospace/aerospace.toml&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/leonid-shutov/.dotfiles/blob/mac/env/.config/aerospace/aerospace.toml&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&#34;final-step&#34;&gt;Final step&lt;/h3&gt;
&lt;p&gt;Log out and log back in.&lt;/p&gt;
&lt;p&gt;That’s it.&lt;/p&gt;
&lt;p&gt;Now your setup should:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start automatically&lt;/li&gt;
&lt;li&gt;Open your applications&lt;/li&gt;
&lt;li&gt;Put them in the right places&lt;/li&gt;
&lt;li&gt;Let you jump instantly with &lt;code&gt;Option(⌥) + label&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next Steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Definitely check out &lt;strong&gt;Aerospace&lt;/strong&gt; on &lt;a href=&#34;https://github.com/nikitabobko/AeroSpace&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Find out how to work with 2 or more windows on the same workspace&lt;/li&gt;
&lt;li&gt;Consider remapping &lt;code&gt;Option&lt;/code&gt; key to &lt;code&gt;Command&lt;/code&gt; key as you will use window manager much more often then whatever you need &lt;code&gt;Command&lt;/code&gt; key for. I personally suggest remapping &lt;code&gt;Command&lt;/code&gt; key to &lt;code&gt;Caps Lock&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    
  </channel>
</rss>
