Hypercritical


SwitchGlass

SwitchGlass

This documentation applies to SwitchGlass version 1. The documentation for the current version can be found elsewhere.

SwitchGlass adds a dedicated application switcher to your Mac. You can customize its appearance, size, and position on each attached display, including hiding it on selected displays. It pairs perfectly with Front and Center, supporting configurable click and Shift-click actions on app icons in the floating app switcher. SwitchGlass is available for $4.99 on the Mac App Store. To learn more, please read the FAQ.

Download SwitchGlass on the Mac App Store

SwitchGlass screenshot

Releases

1.5.4 - April 2, 2022
  • Improved the handling of multiple displays.
1.5.3 - December 16, 2021
  • Improved app icon drawing, including special-case handling of Microsoft apps.
1.5.2 - December 15, 2021
  • Fixed a bug that could cause incorrect behavior when launching the app.
1.5.1 - November 30, 2021
  • Fixed a bug that could cause the app switcher to fail to auto-hide when in a horizontal orientation.
1.5 - November 18, 2021
  • Fixed a cosmetic bug that could cause an app-switcher button to get temporarily stuck in its pressed state.
1.4.9 - June 18, 2021
  • Selected text may now be dragged and dropped onto the icons of BBEdit and TextEdit in the app switcher.
1.4.8 - February 6, 2021
  • Improved auto-hide activation.
1.4.7 - February 4, 2021
  • Fixed a cosmetic bug in the About window.
1.4.6 - November 11, 2020
  • Improved hardware support.
1.4.5 - September 21, 2020
  • Briefly show auto-hidden app switchers when changing appearance preferences.
1.4.4 - September 4, 2020
  • Fixed a bug that could cause unintended app activation after hovering over an app switcher with auto-hide enabled.
1.4.3 - September 3, 2020
  • Fixed a bug that prevented app switcher edges from being visible to macOS’s built-in window snapping feature.
  • Updated the default app switcher material for future operating systems.
1.4.2 - July 24, 2020
  • Minor layout adjustments to the Preferences and Exclude windows.
  • Updates to improve support for future operating systems.
1.4.1 - June 4, 2020
  • Added a minimum size for the auto-hide activation region to improve the usability of very small app switchers when in auto-hide mode.
1.4 - June 1, 2020
  • Added an option to show only apps that have windows on the same display as the app switcher.
1.3.2 - April 24, 2020
  • When auto-hide is enabled, holding down the Option key will prevent the app switcher from appearing when the pointer enters its activation area.
  • Fixed a bug that could cause an extra app switcher to appear after a display is disconnected.
1.3.1 - March 20, 2020
  • Fixed a bug that could cause settings to be lost when disconnecting an external display.
1.3 - March 15, 2020
  • Fixed a bug that could cause an external display to be identified as a built-in display.
1.2.9 - March 9, 2020
  • Added input validation to the text fields in the preferences window.
  • Removed brief hide/show animation when display settings change but a display has not been added or removed.
1.2.8 - March 6, 2020
  • Improved state restoration when connecting and disconnecting external displays.
  • The preferences window is now forced to the front more reliably when activated.
  • Fixed a bug that could cause a partially loaded desktop background image to appear in preferences.
1.2.7 - March 1, 2020
  • Fixed a bug that could cause an error dialog to appear when an app could not be reopened due to a permission error. In these cases, the app is now activated instead of reopened.
1.2.6 - February 29, 2020
  • App switchers set to auto-hide are now accessible on displays containing full-screen windows.
  • Improved the forgiveness of click handling for app switchers with margins.
  • Concurrency-related bug fixes.
1.2.5 - February 27, 2020
  • Added the ability to exclude apps from appearing in the app switcher.
  • Improved auto-hide behavior when the mouse cursor enters the menu bar.
1.2.4 - February 26, 2020
  • Fixed a bug that could cause app switchers to be missing on one or more displays when using multiple displays with the same make and model.
1.2.3 - February 26, 2020
  • Improved the forgiveness of auto-hide activation and deactivation.
1.2.2 - February 24, 2020
  • Moved the auto-hide setting into the preferences window.
  • Fixed a cosmetic bug that caused label backgrounds to draw incorrectly in preferences.
  • Fixed a bug that caused the padding percentage text field to refuse keyboard focus when using the tab key to navigate in the preferences window.
1.2.1 - February 23, 2020
  • Disable auto-hide by default.
1.2 - February 22, 2020
  • Added auto-hide feature.
  • App switcher edges are now visible to macOS’s built-in window snapping feature.
  • Removed "jiggle" animation, previously used to eliminate drawing artifacts during app switcher appearance changes, and replaced it with a more efficient solution.
1.1.4 - February 22, 2020
  • Option-click and Option-Shift-click on the currently active app icon will now just hide that app and won’t perform the configured click or Shift-click action afterwards.
  • Further improved the selection and display of the desktop background image in the preferences window.
1.1.3 - February 21, 2020
  • Added an option to reverse the app sorting order.
  • Added the “Reopen” and “Reopen and Show All” actions to the app icon context menu.
  • Fixed a cosmetic problem triggered by some changes to corner style and radius.
  • Fixed a bug that caused SwitchGlass’s process name to appear blank in Activity Monitor.
  • The SwitchGlass icon should no longer appear briefly in the Dock during launch.
  • Added a default fallback for the desktop picture that appears in preferences.
1.1.2 - February 20, 2020
  • Added “Reopen” and “Reopen and Show All” actions that will activate or show all windows from an app and also open a new window (or un-minimize a window from the Dock) if the app currently has no open windows.
  • Further improved the selection and display of the desktop background image in the preferences window.
1.1.1 - February 18, 2020
  • Added an option to sort apps by launch order.
  • Added support for dragging links onto web browser icons in the app switcher.
  • The preferences window will attempt to show the correct desktop thumbnail image when using a “dynamic” desktop background that changes with the time of day.
  • Fixed a bug that could cause one or more preferences windows to fail to come to the front when requested.
  • Fixed a bug that could cause unexpected app switcher animation on launch or when changing the display configuration.
  • Fixed a bug that could cause empty settings values to be stored in the preferences file.
1.1 - February 15, 2020
  • Option-clicking an app icon now hides the current app before performing the configured click action.
  • Option-Shift-clicking an app icon now hides the current app before performing the configured Shift-click action.
  • Fixed a bug that could cause app switcher settings to change when switching from an integrated GPU to a discrete GPU.
  • Improved app activation speed.
1.0.2 - February 14, 2020
  • Fixed a bug that could allow invalid orientation and position combinations to be selected in the preferences window.
1.0.1 - February 14, 2020
  • Improved the quality of app icon resizing.
  • Fixed several bugs related to connecting and disconnecting additional displays.
  • Fixed a bug that could cause some app icons to reject valid drag-and-drop operations.
  • App icons now dim on right-click to make it clearer which app is associated with the context menu.
  • Prevent the preferences window’s title bar from being covered by the app switcher.
  • Fixed a cosmetic problem triggered by some changes to corner style and radius.
  • Fixed a cosmetic problem in the About box.
1.0 - February 12, 2020
  • Initial release.

Frequently Asked Questions

Q: What does it do?

A: SwitchGlass adds a dedicated application switcher to your Mac in the form of a floating window that shows an icon for each running app. Here’s how it works in its default configuration:

  • Click an app icon to bring all windows from that app to the front.
  • Hold down the Shift key while clicking an app icon to bring just one window from that app to the front.
  • Hold down the Option key while clicking an app icon to hide the current app before bringing the clicked app to the front. (Option-clicking the currently active app will hide it.)
  • Hold down the Option and Shift keys while clicking an app icon to hide the current app before bringing just one window from the clicked app to the front. (Option-Shift-clicking the currently active app will hide it.)
  • Right-click (or Control-click) an app icon to activate a context menu from which you can perform any of the supported actions (described below).
  • Drag one or more files or folders onto an app icon to open those items with the app.
  • Hold down the Command key while clicking on an app icon to reveal the app in the Finder.

Some of these behaviors are configurable; see below. Given that the click and Shift-click actions can be customized, the functionality can be described in the abstract as follows:

  • Click an app icon to perform the configured click action.
  • Hold down the Shift key while clicking an app icon to perform the configured Shift-click action.
  • Hold down the Option key while clicking an app icon to hide the current app before performing the configured click action. (Option-clicking the currently active app will just hide it.)
  • Hold down the Option and Shift keys while clicking an app icon to perform the configured Shift-click action. (Option-Shift-clicking the currently active app will just hide it.)
  • Right-click (or Control-click) an app icon to activate a context menu from which you can show or hide an app.
  • Drag one or more files onto an app icon to open those files with the app.
  • Hold down the Command key while clicking on an app icon to reveal the app in the Finder.

Q: I launched SwitchGlass but I don’t see it in my Dock. Is it running?

A: SwitchGlass does not appear in the Dock. Its interface is exposed through an icon on the right side of the menu bar at the top of the screen. (See screenshot above.)

Q: How do I customize SwitchGlass?

A: Choose “Preferences…” from the SwitchGlass menu bar icon to open a window on each attached display. The appearance settings in each preferences window apply only to the app switcher on that display. The “Global Settings” at the bottom of the preferences window apply to SwitchGlass as a whole.

Note: when one preferences window is closed, all the preferences windows will close.

Q: What do all the click-action menu options mean?

A: The “App Click” and “Shift-Click” pop-up menus in the preferences window are used to choose what will happen when you click or Shift-click an app icon in the app switcher. Every choice will activate the clicked app, but the actions all do something slightly different to the app’s windows. Here’s what each action does:

  • Show All Windows - Activate an app and bring all its window to the front.
  • Activate - Activate an app and bring only the “main and key windows” to the front. In practice, the “main” window is usually also the “key” window, so only one window will come to the front.
  • Reopen - Activate an app in a way that triggers its “reopen” handler. Apps can choose to do whatever they want in response to a “reopen” action, but most bring a single window to the front, opening a new window (or un-minimizing a window from the Dock) if none are open. Note that some apps (e.g., Steam) cannot be reopened due to sandboxing restrictions. In these cases, the app is activated instead.
  • Reopen and Show All - This is the same as “Reopen” except that SwitchGlass will also bring all the app’s windows to the front after sending the “reopen” action. Note that since apps can do whatever they want in response to a “reopen” action, some apps (e.g., Chrome) already bring all their windows to the front when reopened. For apps like that, the “Reopen” and “Reopen and Show All” actions are equivalent.

Q: What does the “Show Apps” setting do?

A: The “Show Apps” pop-up menu in the preferences window controls which apps appear in which app switchers. The options are:

  • All - Show all eligible apps in all app switchers. This is the default.
  • Filtered By Display - Show only apps that have open windows on the same display as the app switcher.

Q: How do the visibility options work?

A: The “Visibility” pop-up menu in the preferences window controls the app switcher visibility on a specific display. The options are:

  • Show - The app switcher is visible.
  • Hide - The app switcher is not visible.
  • Auto-Hide - The app switcher is not visible until the mouse cursor touches the region of the screen edge where is is positioned.

Hold down the Option key while clicking the SwitchGlass menu bar icon to temporarily toggle the visibility of any app switchers that have their visibility set to “Show” in preferences. This is meant as a shortcut to quickly hide and show visible app switchers. These changes are not persistent and are not reflected in the preferences windows. Only the visibility changes made directly in the preferences windows are persistent across launches.

Q: Does SwitchGlass work with Front and Center?

A: You bet it does! Front and Center’s default “Classic” mode matches up perfectly with SwitchGlass’s default settings: click to bring all app windows to the front, shift-click to bring a single window to the front. You can also configure SwitchGlass to match Front and Center’s “Modern” mode by changing the click and Shift-click actions in the SwitchGlass preferences. And if you want to configure SwitchGlass and Front and Center differently, no problem, the two apps will communicate to ensure that they don’t interfere with each other’s actions.

Q: Why does this app exist? Why not just use the Dock?

A: The macOS Dock does show an icon for each running application and allows apps to be brought to the front and hidden. But the Dock also may contain other things: files, folders, recent (but not currently running) apps, plus the trash can. The Dock is also centered on the edge of the screen and has limited appearance options. It cannot appear in different positions and sizes on different displays, and it always brings all windows from an app to the front when an app icon is clicked.

SwitchGlass is for people who want an interface element dedicated entirely to application switching, with a customizable appearance and location for each attached display. When used alongside the Dock, SwitchGlass provides a second target for mouse-based app switching. With the Dock hidden, it provides an app-switching interface without any clutter from the other functions of the Dock.

Q: Can’t you just use the command-tab app switcher?

A: You certainly could, but sometimes some people like to use the mouse (or trackpad) to switch apps.

Q: Why does SwitchGlass require macOS 10.15 Catalina or later?

A: SwitchGlass uses SwiftUI, Apple’s new user interface framework. SwiftUI runs only on macOS 10.15 Catalina or later.

Q: I clicked on an app icon and that app didn’t come to the front! What’s going on?

Apple provides APIs to activate applications, optionally also bringing all of their windows to the front. Sometimes, when a call is made to one of these APIs, nothing happens. Or sometimes the app activates but none of its windows come to the front, even though the API call asked for all windows to come to the front. These bugs have existed in macOS for many years, and I’ve not yet found a workaround for them in SwitchGlass.

When this happens, quitting and relaunching the application that refused to come to the front will sometimes fix the problem. Other times, logging out and back in will do it. In extreme cases, a full restart may be required. For some applications, even these solutions don’t work. (Microsoft Outlook, in particular, seems completely immune to all window layering API calls available to third-party apps.)

This bug has been filed with Apple as FB7603765.

Q: Why does SwitchGlass disappear when a window is in full-screen mode?

SwitchGlass is intentionally hidden on any display that contains a window in full-screen mode. The rationale is that full-screen mode is a way to assert ownership of the entire display. Drawing another app on top of a full-screen app violates this expectation.

If you would like to access an app switcher on a display that contains a window in full-screen mode, set the app switcher’s visibility to Auto-Hide.

Q: Why doesn’t SwitchGlass bounce app icons in response to notifications or show notification badges like the Dock does?

As far as I am aware, there are no public APIs in macOS that allow third-party apps to implement these features in the same way that the Dock does.

Q: Why doesn’t SwitchGlass show the same dynamic app icons as the Dock?

Some applications change their Dock icons while running. For example, Apple’s Calendar app changes its Dock icon to show the current date. As far as I am aware, there are no public APIs in macOS that allow third-party apps to show these icons. The dynamic icon updates are communicated to and accessible by the Dock only.

Q: Why can’t I use SwitchGlass to quit apps?

Sandboxed Mac apps cannot tell arbitrary other applications to quit.

It is possible to include an explicit list of apps that can be terminated, but the list must be compiled into SwitchGlass itself and cannot change. It’s not possible to know every application that every user might run, so this feature is not feasible for SwitchGlass.

Q: Why can’t I drag and drop some kinds of files onto some app icons?

Not all apps can understand all file formats. SwitchGlass only allows drag-and-drop when it has determined that an app can handle the files being dropped onto it. If you have a situation where you think an app should accept a dropped file but SwitchGlass is disallowing it, please contact us.

Q: How do the icon padding preferences work?

A: The icon padding slider in the SwitchGlass preferences window controls the padding between icons in the app switcher as a percentage of the icon size, from 0% to 100%. For example, if the icon size is set to 32 points and the padding slider is at 50%, then then each icon will have 16 points of padding around it.

The text field to the right of the icon padding slider shows the slider’s exact value. It exists to allow fine-tuning without having to carefully move the slider a tiny amount.

Changing the icon size does not change the position of the icon padding slider (or the text field that reflects its value). If set to 50%, it will remain at 50% no matter how the icon size changes.

The icon padding “Size” text field below the icon padding slider exists to allow the padding to be set directly, rather than as a percentage of the icon size. As the icon size changes, the computed padding size will also change. For example, with the icon padding slider set to 50%, if the icon size changes from 32 points to 48 points, the padding size text field will change from 16 points to 24 points.

Q: What’s the deal with the name?

The “switch” part is easy: SwitchGlass is used to switch apps. I had considered “Switchblade,” but rejected it as too violent. For whatever reason, my mind jumped from there to switchgrass, the plant. Then it was just a short hop to SwitchGlass based on the app switcher’s translucent, glass-like appearance. The name is InterCapped in the tradition of classic Mac applications like MacPaint, MacWrite, FileMaker, SuperPaint, etc.

Q: Who created the icon?

The SwitchGlass icon was created by Brad Ellis.

Q: Are there any expert features or easter eggs?

Here are a few:

  • Hold down the Option key while clicking the menu bar icon to quickly hide and show all visible app switchers. (Read more above.)
  • Hold down the Option key while clicking the “Reset” button in the preferences window to reset more settings to their default values.
  • When auto-hide is enabled, holding down the Option key will prevent the app switcher from appearing when the pointer enters its activation area.
  • Command-Option-click the menu bar icon to cycle through the different menu bar icons.
  • Command-Option-Shift-click the menu bar icon to switch the API set used to activate apps. (Sadly, both available API sets exhibit the same bugs described above.)

Q: Is there a privacy policy?

Yes.