What are profiles?
Each profile is a named collection of pinned apps. You can create as many profiles as you need and switch between them using the menu bar, settings window, or a keyboard shortcut. TheProfile model (Profile.swift:3-13) is simple:
Creating profiles
Add a new profile
Click Add and give your profile a descriptive name (e.g., “Coding”, “Design”, “Writing”)
Switching profiles
You can switch profiles in three ways:Menu bar
Click the HopTab icon and select a profile from the dropdown
Settings window
Select a profile from the list in Settings > Profiles
Keyboard shortcut
Use `Option + “ (default) to cycle through profiles
Profile switcher shortcut
The profile switcher works just like the app switcher:| Action | Shortcut |
|---|---|
| Show profiles & cycle forward | `Option + “ |
| Cycle backward | `Shift + Option + “ |
| Activate selected profile | Release Option |
| Cancel | Escape |
If you set your app switcher to
Option + \``, the profile switcher automatically falls back to Control + “ to avoid conflicts.AppState.swift:142-152:
Example workflows
Here are some common profile setups:Coding
Coding
Pinned apps: Xcode, Simulator, TerminalWhen to use: Building and debugging iOS/macOS apps. Switch between your IDE, the running simulator, and terminal for logs.
Design
Design
Pinned apps: Figma, Safari, PreviewWhen to use: UI/UX work. Hop between your design tool, reference screenshots, and browser testing.
Writing
Writing
Pinned apps: Notion, Safari, ChatGPTWhen to use: Documentation and research. Quickly switch between your editor, research tabs, and AI assistant.
Communication
Communication
Pinned apps: Slack, Mail, CalendarWhen to use: Catching up on messages. Cycle through your communication tools without distraction.
Profile storage
Profiles are stored inUserDefaults and persist across app restarts. The storage implementation (PinnedAppsStore.swift:140-150) uses JSON encoding:
Legacy migration
If you upgrade from an older version of HopTab that didn’t have profiles, your pinned apps are automatically migrated to a “Default” profile (PinnedAppsStore.swift:178-186):
Managing profiles
Renaming profiles
Deleting profiles
When you delete a profile, any desktop assignments to that profile are also removed:Desktop assignment
Auto-switch profiles when you change desktops
App switching
Learn how the app switcher works