---
title: Right-Click Setting Affordances
---

# Right-Click Setting Affordances

## What it is

Right-click certain live UI elements to **Hide** them or jump to their
**setting**. Covers the subagent activity card, Auto-Waited tag, voice button,
close (✕) button, context-% ring, alternate-providers chip, and the
current-branch badge — plus the auto-waiting surfaces (the Keep waiting / Check in
composer buttons, the collapsed Auto-waited + Background check-in markers, and the
scheduled-wake countdown banner), which offer an **open-setting-only** menu (just
**Open setting…**, no **Hide** — an action button / collapsed marker has no
boolean to hide).

## Where to find it

There is no screen to open for this — it is a right-click gesture on live parts of the app. Right-click (or long-press for about half a second on a touch screen) one of these elements and a small menu appears at the pointer: the subagent activity card, the Auto-Waited tag, the voice button, the close button on a session, the context-% ring, the alternate-providers chip, or the current-branch badge.

That menu offers Hide, which turns that element's setting off so it disappears at once, and Open setting…, which opens Settings, scrolls to the matching control and highlights it.

The waiting surfaces — the Keep waiting and Check in buttons in the composer, the collapsed Auto-waited and Background check-in markers, and the scheduled-wake countdown banner — are right-clickable too, but their menu only offers Open setting…, since an action button or a marker has no on/off state to hide.

## How it behaves

### How it works

- **Hide [element]** — turns that element's setting off, so it disappears
  immediately. A toast confirms with **Undo** (and an **Open settings**
  shortcut). Because a hidden element can no longer be right-clicked, Undo and
  Settings are the re-enable paths.
- **Open setting…** — opens Settings, scrolls to the element's toggle, and
  pulses it. Also how you turn it back on. (For most elements this lands in the
  Sessions section; the alternate-providers chip lands in Accounts and the
  branch badge in Appearance — the section is looked up automatically from the
  settings search index.) If the target toggle sits inside a collapsed **Advanced**
  fold, the fold opens automatically so the pulsed row is visible — the same
  auto-expand that lets Settings search reach a folded control (see
  `.claude/memory/contracts/settings-disclosure-contract.md`).

Right-click on desktop, or long-press (500 ms) on touch — the same menu opens at
the pointer/finger. (Some elements are desktop-only anyway, but the Auto-waited
tag/markers and the waiting buttons appear on mobile too, where long-press reaches
them.)

## For agents

### Internals

- Registry: `src/renderer/src/features/setting-affordances/setting-affordance-registry.ts`
  maps element → `{ label, settingsKey?, settingId }` (`settingsKey` optional —
  omitted = open-setting-only, no Hide row). Single source of truth.
- Menu: `SettingAffordanceMenu.tsx` (presentational, reuses the shared
  `useMenuKeyboard` + `clampToViewport` + `CONTEXT_MENU_BUTTON` pattern).
  Hook: `useSettingAffordanceMenu.tsx` returns `{ triggerProps, menu }`.
- Hide writes through `settingsStore.updateSetting`; Open-setting routes via
  `wizardStore.setPendingSettingId` + `navigateToSettingsProject`. The section
  is resolved from `SETTINGS_SEARCH_INDEX` by `settingId` at click time.
- Contract + invariants: `.claude/memory/contracts/setting-affordance-contract.md`.

## Related

Nothing else in the library covers this gesture, so start from [INDEX.md](INDEX.md), the library index, to find the pages for Settings and for the session surfaces these right-click menus act on.
