How I Fixed Switching Between Safari Profiles with BetterTouchTool and a Hyper Key

A lot has changed in my professional life over the past year. As of today, I am working fully from home on three separate long-running projects, and now more than ever, the web browser has become central for all three. Since the M2 MacBook Air is my only computer, I found myself in urgent need of a way to allow these virtual workspaces to coexist on the same device.

Fortunately, Apple added profiles to Safari in macOS 14 Sonoma, iOS 17, and iPadOS 17 (then later in visionOS 2). Profiles offer a way to keep your bookmarks, cookies, extensions, and browsing history separate between, say, a Personal profile and a Work profile. Even though Google Chrome and Firefox have had similar solutions in place for a while, Safari remains my web browser of choice, so I wanted to take full advantage of the new feature.

In my prolonged usage, Safari profiles work exactly as intended. I’ve set up four different profiles: a Personal profile and three separate work profiles. They are each logged into a different Google account, and they each have their own set of bookmarks, their own pinned tabs for quick access to relevant tools and web apps, and their own set of extensions. Safari makes it easy enough to tell profile windows apart by allowing you to assign a custom icon and color to each one.

That being said, Safari’s implementation of profiles has one major UI flaw: Apple has made it unusually cumbersome to switch between them on the fly, or even to launch Safari into a specific profile directly. So, to no one’s surprise, I have once again attempted to leverage the power of Mac automation utility BetterTouchTool to come up with a workaround. The solution I’ve arrived at is simple, but it makes a huge difference.

Let me show you.

The Problem with Safari Profiles

First, allow me to explain what is so problematic about the UI for switching between Safari profiles on the Mac. When you have multiple profiles set up, the browser will permanently display a button next to the address bar indicating which profile is currently active. You might expect that you could simply click that button to switch to a different profile. Unfortunately, Apple has deprioritized profiles in this button’s dropdown menu. Clicking it will first reveal options to select or create a tab group within the current profile, and the option to switch to a different profile is located in a secondary submenu called ‘New Window’, which means at least two clicks are required every time you want to change profiles.

The prominent tab group and profile switcher in Safari hides your profiles in a submenu.

There are three other ways to open a specific profile in Safari:

You can right-click the Safari icon in the Dock, click the ‘New Window’ submenu, and then select one of your profiles to open.

Or, if you already have an active Safari window, click ‘File’ in the macOS menu bar, then select the ‘New Window’ submenu to open one of your profiles.

Or you can memorize the keyboard shortcuts that are automatically assigned to each of your Safari profiles. You can view these keyboard shortcuts by navigating to the ‘File → New Window’ submenu in Safari.

Another way to open a specific profile is to right-click the Safari icon in the Dock, then click through the ‘New Window’ submenu.

Alternatively, head to the menu bar and navigate to the ‘File → New Window’ submenu.

Long story short, the option to switch to a specific profile in Safari is always either hidden behind multiple clicks or triggered via a keyboard shortcut that only works if Safari is already active. If, like me, you need to juggle a total of four different profiles throughout your workday, this is unnecessarily complicated, and it may in turn demotivate you from using the feature entirely. To make matters worse, there are no Shortcuts actions for opening specific profiles, so you can’t create your own solution to do so via an icon in the Dock or a global keyboard shortcut.

The Workaround, Powered by BetterTouchTool and Hyperkey

If you are not familiar with BetterTouchTool, picture it as a utility belt that allows you to create automations and customize how you trigger them on the Mac with a wide variety of options. To name just a few examples, you can use the app to personalize how you manage your windows, assign simple keyboard shortcuts to complex operations, and even build your own trackpad gestures.

Here, I’m using BetterTouchTool to create straightforward keyboard shortcuts to reliably open each of my Safari profiles directly. The resulting keyboard shortcuts need to fulfill two criteria:

They have to be simpler than Safari’s default shortcuts, so that I can easily memorize them.

They have to work even when Safari is not already running or active on-screen, so that I’m not required to manually launch the app every time I use them.

To create the simplest set of keyboard shortcuts possible, my mind immediately goes to the Hyper key trick, which Jonathan recently covered in MacStories Weekly, our newsletter that goes out to Club MacStories members every Friday.

The idea is essentially a way to add another modifier key to your Mac by remapping the Caps Lock (⇪) key to behave as if Command (⌘), Option (⌥), Control (^), and Shift (⇧) are all being pressed at once. With a Hyper key set up on your Mac, you can create a whole new set of unique and easy-to-remember keyboard shortcuts for all your apps. One way that I’ve seen people take advantage of Hyper key shortcuts is by assigning them to launch some of their most-used apps, like Hyper key + S to launch Safari or Hyper key + D to launch Discord.

Since I have four Safari profiles, my plan is to create four new keyboard shortcuts by combining the Hyper key with the number row:

Hyper key + 1 will always launch Safari with my Personal profile.

Hyper key + 2, Hyper key + 3, and Hyper key + 4 will each be assigned to one of my three work profiles.

Note that on my Mac and in the following screenshots, because I’m using a French keyboard, these four keyboard shortcuts will appear as Hyper key + &, Hyper key + É, Hyper key + “, and Hyper key + ‘, due to the way the number row is assigned to these special characters on the French layout.

There are many ways to set up a Hyper key, including installing the aptly-named Hyperkey app, but since we’re using BetterTouchTool here, we can simply use its built-in ‘Act as Hyper key’ action with the following steps:

In BetterTouchTool, navigate to the Keyboard Shortcuts section.

Click the ‘+’ button, then press the Caps Lock key (or whichever key you’re going to use as your Hyper key) to record it.

In the second column, click the ‘+’ button to add a new action, then select ‘Act as Hyper key’ in the list of available actions.

In BetterTouchTool, navigate to the Keyboard Shortcuts section.

Click the ‘+’ button (1), then press the Caps Lock key to record it (2).

In the second column, click the ‘+’ button to add a new action (1), then select ‘Act as Hyper key’ in the list of available actions (2).

Now that we can create Hyper key shortcuts, we can start assigning them to each of our Safari profiles in BetterTouchTool. First, we need to note the keyboard shortcuts that Safari automatically assigned to each profile, which you can preview by navigating to the ‘File → New Window’ submenu in the Safari menu bar. On my Mac, since I’m using a French keyboard, these keyboard shortcuts are as follows:

Command + Option + Shift + À opens my default Personal profile.

Command + Option + Shift + & opens my first work profile.

Command + Option + Shift + É opens my second work profile.

Command + Option + Shift + ” opens my third work profile.

If you use a U.S. English keyboard and also have four Safari profiles, these shortcuts will most likely be as follows:

Command + Option + Shift + 0

Command + Option + Shift + 1

Command + Option + Shift + 2

Command + Option + Shift + 3

Now, we can use BetterTouchTool to build a handful of Hyper key shortcuts to trigger each of the keyboard shortcuts above:

In BetterTouchTool, navigate to the Keyboard Shortcuts section.

Click the ‘+’ button, then press Hyper key + 1. (Note: The Hyper key will appear as ‘⇧⌃⌥⌘’; this is normal.)

In the second column, click the ‘+’ button to add a new action.

Select ‘Send Keyboard Shortcut’, then press the keyboard shortcut corresponding to your default Safari profile. That’s Command + Option + Shift + À in my case, or Command + Option + Shift + 0 on a U.S. English keyboard.

Repeat the process for each of your Safari profiles.

Click the ‘+’ button (1), then press Hyper key + 1 on your keyboard (2).

In the second column, click the ‘+’ button to add a new action (1), select ‘Send Keyboard Shortcut’, then press the keyboard shortcut corresponding to your default Safari profile (2).

Repeat the process for each of your Safari profiles and their corresponding default keyboard shortcuts.

At this point, I am now able to press Hyper key + 1, 2, 3, or 4 to quickly open a specific Safari profile without having to click through submenus or remember all of the keys required by the default keyboard shortcuts. However, since we are only redirecting our custom Hyper key shortcuts to Safari’s default keyboard shortcuts for opening our profiles, Safari still needs to be running and active on-screen for these to work. The goal here is to be able to press Hyper key + 2 and immediately open my first work profile in Safari even if I’m currently working in Obsidian or reading a conversation in Discord.

To fix this, we just need to add one action to each of the four triggers we’ve just created in BetterTouchTool to always launch Safari before sending the profile’s default keyboard shortcut:

In BetterTouchTool, select one of the Hyper key shortcuts you just created.

In the second column, click the ‘+’ button to add a new action.

Select ‘Launch Application’ in the list of available actions, then pick Safari.

Drag and drop the ‘Launch Safari.app’ action block above the keyboard shortcut action.

Repeat the process for each of your Safari profiles.

Select one of the Hyper key shortcuts you just created, click the ‘+’ button to add a new action (1), select ‘Launch Application’ in the list of available actions (2)…

…then pick Safari, either from your running apps or from the Applications folder. Make sure to move this ‘Launch Safari.app’ action above the keyboard shortcut action to ensure Safari is active when the keyboard shortcut is triggered.

And here we are. Wherever I am on my Mac, I can now simply press Hyper key + 1, 2, 3, or 4 to immediately open a Safari window in the corresponding profile. These keyboard shortcuts work reliably and are easy enough to memorize that, after just a few days of using them, I no longer have to think twice to make sure I‘m opening the profile I want.

Opening a specific Safari profile is now as easy as hitting Hyper key + 1, 2, 3, or 4. (The Hyper key is shown as ‘⇧⌃⌥⌘’ in the recording.)

It seems to me that Apple should have done a better job implementing a profile switcher in Safari. While I don’t mind having to open profiles in dedicated Safari windows on the Mac, it is frustrating that it cannot be done in fewer than two or three clicks or using global keyboard shortcuts. More surprising is the total lack of Shortcuts support for Safari profiles, which would allow for simpler workarounds like adding profile launchers to the Dock or even the menu bar.

If Apple is willing to go further, I would love for them to reshape profiles to more closely resemble Firefox’s container tabs, which essentially act just like profiles but can be mixed in with other tabs in a single browser window.

In the meantime, I am once again glad that macOS allows us to leverage advanced utilities like BetterTouchTool to create our own workarounds like this one. I definitely wouldn’t be able to enjoy my Mac half as much as I do without this wonderful flexibility.