Prox Switchbar
Prox Switchbar is the OS-level open-with chooser for links. It is inspired by
Prox Switchbar is the OS-level open-with chooser for links. It is inspired by the idea that external web apps can belong to managed workspaces, but it stays within browser security limits and Prox OS product language.
Role
The Switchbar can replace ordinary link context-menu behavior with a centered overlay that feels closer to command palette plus app launcher plus open-with chooser.
It shows:
- current URL and domain;
- detected Proxied App match;
- recommended launch mode;
- matching early deep-link rule;
- icon-driven open actions.
Actions
The first version supports:
- Open in Proxied App.
- Open in Proxied Space.
- Open as an OS page when the URL maps to a registered app.
- Open in a new tab.
- Copy clean URL.
- Always use this rule placeholder.
Rules are local seed data today. They can match domains and route the user to a Proxied App, Proxied Space, native app, or external launch mode.
Settings Toggle
Display Options includes a link-opening setting:
- Prox Switchbar: use the OS-level open-with overlay.
- Legacy menu: use the compact managed-link context menu.
The legacy menu remains in the code path as a fallback. The shell chooses between
the two presentations when openManagedLinkMenuAt is called.
Placement
Switchbar is vertically and horizontally centered against the core workspace rectangle. When Alma is enabled, this keeps the chooser centered in the work area instead of the full browser viewport.
Link Control Boundary
Prox OS can control links that the shell renders. It can also expose a
cooperative openLinkChoiceAt API to first-party apps and iframe guests that
choose to post managed-link messages.
Cross-origin iframe clicks are not fully controllable by a browser shell. Early support can only combine:
- iframe navigation observation;
- sandbox policy;
- external fallback;
- user right-click or explicit open menu;
- cooperative guest app messaging.
Future browser extensions or desktop clients can improve link interception. Desktop clients may also investigate system-level link capture, global shortcuts, tray behavior, local indexing, and profile/cookie isolation. Those are not browser-shell guarantees.
Current Implementation
- Shell overlay:
apps/os-shell/src/shell/chrome/ProxSwitchbar.tsx. - Legacy menu:
apps/os-shell/src/shell/chrome/ManagedLinkMenu.tsx. - Placement helper:
apps/os-shell/src/shell/overlays/useCoreWorkspaceRect.ts. - Link resolution:
apps/os-shell/src/shell/links/resolveManagedLink.ts. - Switchbar rules:
packages/embed-runtime/src/proxiedCatalog.ts. - Cooperative iframe link message contract:
packages/contracts/app-contract/src/iframe-guest-messages.ts.