diff --git a/README.md b/README.md index 66e32bc..e849344 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,10 @@ Browseroute is a macOS menu-bar app. It registers as the default web browser, then opens every link in the matching browser: host suffix, host glob, or host+path glob. Unmatched links go to the catch-all you mark as Default. +

+ Browseroute popover +

+ ## Install macOS 14+. Builds are signed with a Developer ID certificate and notarized by @@ -35,21 +39,21 @@ make install open /Applications/Browseroute.app ``` -Click the menu-bar icon (branch arrow). Add your browsers, set one as the -default catch-all, then **Settings → Set as Default Browser…** and accept the +Click the menu-bar icon (the branch arrow). Add your browsers, set one as the +Default catch-all, then Settings → Set as Default Browser… and accept the system dialog. `make install` copies the app to `/Applications/Browseroute.app`. Default-browser registration only works from that stable path, not from a random `build/` copy. -Turn on **Settings → Launch at Login** so routing stays instant — otherwise macOS -cold-starts the app on every click. The **Routing** switch in the popover header +Turn on Settings → Launch at Login so routing stays instant. Otherwise macOS +cold-starts the app on every click. The Routing switch in the popover header pauses matching: every link then opens in the Default catch-all. ## Rules -Browsers and patterns are edited in the popover. Evaluation is top-to-bottom, -first match wins. Matching is case-insensitive. +Browsers and patterns are edited in the popover. Rules are tried top to bottom; +the first match wins. Matching is case-insensitive. | Pattern | Matches | |---|---| @@ -57,8 +61,13 @@ first match wins. Matching is case-insensitive. | `*.corp.com` | host glob (`a.corp.com`). Not the apex `corp.com`. | | `github.com/work-org` or `github.com/work-org/*` | host + path. A pattern with `/` gets an implicit trailing `*` if it does not already end in `*`. | -No match → the Default catch-all. If none is set, the first browser in the list. -If the list is empty, Safari. +If nothing matches, it uses the Default catch-all. If none is set, the first +browser in the list. If the list is empty, Safari. + +Outlook SafeLinks are unwrapped first, so matching uses the inner host. + +If the chosen browser is missing, a notification says so. The link then opens +in the Default catch-all when that one is installed; otherwise it is not opened. ## Develop @@ -68,7 +77,7 @@ make check # lint + build + test make install # package and copy to /Applications ``` -The app is an `LSUIElement` agent — no Dock icon. +The app is an `LSUIElement` agent, so it has no Dock icon. ## License diff --git a/docs/popover.png b/docs/popover.png new file mode 100644 index 0000000..3f68ca2 Binary files /dev/null and b/docs/popover.png differ