uttrflow / uttrflow/uttrflow-swift

The Dictate shortcut's explanation says "Hold to talk. Double-tap…" even with Press to toggle selected

Open Beginner friendly
#681 0 comments 0 reactions 0 assignees View on GitHub
area:general bug good first issue P2
Dominant language
Swift
Stars
4
Forks
17
Avg merge
3h 32m
Merged PRs (30d)
277

Description

## What happens

Settings → General shows the Dictate shortcut with this explanation whatever the Activation setting is:

> Hold to talk. Double-tap the same keys to keep talking hands-free.

(`ShortcutRegistry.all`, `Sources/UttrflowUX/ShortcutRegistry.swift:29-33`, used by `SettingsPresenter.shortcutRow`, `Sources/UttrflowUX/SettingsPresenter.swift:103-116`.)

Directly under it is the Activation row, "Hold to talk" / "Press to toggle" (`:133-141`). With **Press to toggle** selected:

- "Hold to talk" is wrong: a press starts and the next press stops.
- The double tap does nothing. `Docs/pipeline-gestures.md` ("in press-to-toggle a release does nothing at all, so no tap is ever counted") and `Docs/shortcuts.md` both say the double tap is reached from hold-to-talk only.

Other screens already follow the setting: the Dictation page's empty state picks "Hold" or "Press" (`Sources/UttrflowUX/MainDictationPresentation.swift:392-393`) and so does Home's hint (`Sources/UttrflowUX/HomePresentation.swift:358-364`).

## Why it matters

Someone who switched to Press to toggle, often because holding a key is hard for them, reads instructions for the other mode and a gesture that will not work for them.

## How to reproduce

`SettingsPresenter.pane(for: .general, settings: settings)` with `hotkeyActivation = .pressToToggle`: the `shortcut.dictate` row's explanation still starts "Hold to talk".

## Acceptance criteria

- With Hold to talk, the explanation is unchanged.
- With Press to toggle, it says what that mode does, for example "Press once to start and again to stop." and does not mention the double tap.
- The Fn explanation (`SettingsPresenter.swift:107-113`) and the unarmed / returned-to-default explanations still take precedence as they do now.
- A test in `Tests/UttrflowUXTests/SettingsPresenterTests.swift` covers both modes.

## Where to start

- `SettingsPresenter.shortcutRow` already receives `settings`; branch on `settings.hotkeyActivation` for `.dictate` only, or give `ShortcutDescriptor` a second explanation.
- Run `make verify` (export `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer` first) and read CONTRIBUTING.md.

**Size:** XS, under an hour.

Contributor guide

Open the contributing guide

Research direction

Start in Sources/UttrflowUX/SettingsPresenter.swift at shortcutRow and compare the existing Dictate, Fn, and default-state explanations with the activation setting. Read Tests/UttrflowUXTests/SettingsPresenterTests.swift, then run the focused tests or make verify; done means both activation modes are covered and the existing precedence rules remain intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
accessibility, desktop
Issue type
Bug
Difficulty
2/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
92/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.