Macotron

Browser picker

The Browser Picker plugin makes Macotron your default browser, then hands each link to a real browser: by rules you write for each host, and for everything else either one browser or a panel that asks.

How it works

When browser-picker.js loads, it asks macOS to make Macotron the handler for http and https links. macOS asks you to confirm the change. From then on, a link you click in Mail, Slack, or any other app goes to Macotron, and the plugin passes it on.

For each link, the plugin checks your rules first. If no rule matches, it uses the Unmatched links setting. Ask every time (the default) shows a small Open Link panel with one button for each browser. Click one, or click elsewhere to close the panel.

The plugin knows Chrome, Safari, Firefox, Edge, and Arc.

Rules

Write one rule per line in the Rules setting: a host, a space, and a browser.

youtube.com safari
youtu.be safari
docs.google.com chrome
/^github\./i firefox

The default rules send YouTube links to Safari.

Settings

SettingDefaultWhat it does
Unmatched linksAsk every timeWhat to do with a link that no rule matches: ask, or always use one browser.
RulesYouTube to SafariOne rule per line, as above.

Open a URL from the launcher

The launcher command Open URL takes a URL and an optional browser. Without a browser, it follows the Unmatched links setting. A URL with no scheme gets https://.

Turning it off

If you disable or delete Browser Picker, macOS still sends links to Macotron. A link that no plugin handles goes to the app that would have opened it if Macotron were not installed, so links keep working. To stop the round trip, choose a different default browser in System Settings → Desktop & Dock → Default web browser.

Write your own routing

Browser Picker is a short plugin built on macotron.url. The core is a few lines:

macotron.url.setDefaultHandler("https");
macotron.url.on("https", "zoom.us", (event) => {
  macotron.url.open(event.url, "us.zoom.xos");
});

A macotron:// link can come from any app or web page. Macotron asks you to allow each one before a plugin sees it. See Security.

See also