gyute.fyi Grid home
Browser tabs

Using Clanker Grid

Browser tabs

2 min read

Each workspace has its own browser tabs. Each tab has a native Electron WebContentsView; the URL bar and toolbar controls operate on the active tab.

Tabs

The tab strip sits above the browser toolbar. Click + to open a tab at https://github.com, click a tab to switch, or click its × to close it. The last tab cannot be closed. Drag a tab to reorder it, or focus its button and press Alt+Shift+Left/Right.

Switching tabs keeps the other tabs' pages alive. Closing an active tab selects an adjacent tab. Browser tabs belong to their workspace and are disposed when that workspace closes.

The toolbar provides Back, Forward, Refresh, Stop, a URL field, an external-browser button, and annotation mode. The address bar can open HTTP(S) URLs and local file: URLs or absolute paths. Pages cannot navigate themselves to local files; web-initiated navigation is limited to HTTP(S). Page URLs and titles from HTTP(S) navigation are stored in a global history across workspaces and app restarts. History keeps the most recent 100 distinct URLs and returns up to 8 suggestions; local files are not stored.

The browser runs in the desktop app even when the workspace is on SSH. A file: URL refers to a local desktop file. Workspace-owned remote HTTP(S) services can be discovered and forwarded automatically while Browser is active; ambiguous listeners require selection. See SSH browser previews. Local checkout servers use the explicit dev-server Browser action.

Type at least two characters in the URL field to see matching history entries. Suggestions appear after a 300 ms debounce. Use the arrow keys and Enter, click a suggestion, or press Escape to dismiss them. History matches URL and hostname prefixes, including hostnames without www..

Notifications

When Browser is visible, pending app notifications appear as a compact chip in its header above the native page. Expand it for the recent stack and actions; the app's notification-history control retains other recent messages. Browser notification chrome does not redirect the active page or change workspace ownership.

DevTools and shortcuts

Right-click browser content to open DevTools or inspect an element. Ctrl/Cmd+Shift+I and F12 toggle detached DevTools for the focused tab. Zoom shortcuts apply to the browser tab when browser content has focus; otherwise they apply to the app UI. While the browser has focus, Cmd/Ctrl+L focuses the address field, Cmd/Ctrl+T / Cmd/Ctrl+W open and close tabs, Cmd/Ctrl+R refreshes, and Ctrl+Tab / Ctrl+Shift+Tab cycle tabs. These are configurable; see Keyboard Shortcuts.

Annotation

Switching tabs or closing the active tab disables annotation mode. Enable it again on the new tab. See Browser Annotation.

Implementation

Main-process tab views, navigation, and bounds live in src/main/ipc/browserIpc.ts; history lives in src/main/browserHistory.ts. Renderer tab state is in src/renderer/store/workspaceStore.ts, and the tab strip is src/renderer/components/BrowserTabStrip.tsx. IPC channel constants live in src/shared/ipcChannels.ts. The tab state contracts are in Workspace State Invariants.