Desktop Material

Settings tab docking

Repository Settings and application Settings use the same browser-style tab strip. The strip can be docked on the left, top, bottom, or right of its content. Left is the compiled-in default so existing profiles keep their established layout.

Behavior

Each surface has its own placement: Preferences and Repository Settings do not share a position. Changing the Settings tab position control applies the layout immediately and saves it in the renderer profile. Top and bottom docks use a horizontal, scrollable tab strip; left and right docks use the vertical strip. The strip keeps its existing search, overflow, pinning, selection, and keyboard behavior in every orientation. Arrow keys follow the dock: Left/Right for a horizontal strip and Up/Down for a vertical strip.

The control remains visible on the settings rail and is keyboard reachable. Its description explains that the two surfaces save separately and that missing or invalid stored values fall back to Left.

Configuration

The renderer stores the two values under these local-storage keys:

Surface Key
Preferences settings-tab-dock-position.preferences
Repository Settings settings-tab-dock-position.repository-settings

Valid values are left, top, bottom, and right. The value is a layout preference only; it does not change which settings are enabled or which repository data is edited.

Failure modes

Security considerations

The preference contains no repository path, account token, credential, or remote data. It is bounded to a four-value allowlist before it is read or written. Invalid renderer storage is treated as untrusted input and cannot inject CSS or change a repository operation.

Verification

Focused coverage verifies the left default, independent persistence for both surfaces, invalid-value fallback, all four control options, horizontal tablist semantics, and orientation-specific keyboard navigation. The responsive style contracts also assert that compact layouts preserve the selected dock.

Suggested articles