Skip to content

Flexible window sizing, unified settings, and keyboard shortcuts#26

Open
nathanael wants to merge 4 commits intof:masterfrom
nathanael:feat/sizing-ux-shortcuts
Open

Flexible window sizing, unified settings, and keyboard shortcuts#26
nathanael wants to merge 4 commits intof:masterfrom
nathanael:feat/sizing-ux-shortcuts

Conversation

@nathanael
Copy link
Copy Markdown

Why

The teleprompter window was locked to a maximum of 500px wide — on a modern MacBook display, that is tiny and hard to read from any distance. Font sizes were limited to four presets (XS/SM/LG/XL) with XL only being 24pt, far too small for actual presenting. The settings were scattered across tabs in ways that did not match how people think about them, and there were no keyboard shortcuts for the most common actions.

These changes come from real usage sessions where the teleprompter was too small to be practical, the settings were confusing to navigate, and having to mouse-click to start/stop broke the presentation flow.

What changed

Window sizing (percentage-based)

  • Width: 20–80% of screen (was 310–500px hard cap)
  • Height: 5–50% of screen (was 100–400px pixels)
  • Panels resize live as you drag the sliders — no restart needed
  • Defaults: 45% width, 40% height

Font size (one slider for everything)

  • Single 14–100pt slider replaces the four-preset buttons (XS/SM/LG/XL)
  • Same font size applies to pinned, floating, and fullscreen modes
  • Font family choice now respected in fullscreen (was hardcoded to system font)

Settings reorganization

  • Appearance tab: font family, font size, colors, cue brightness — global settings
  • Teleprompter tab: overlay mode, mode-specific options, dimensions — contextual settings
  • Display mode (Follow Mouse / Fixed Display) moved from Pinned to Floating section where it belongs
  • Fixed settings window height so it stops jumping when switching tabs
  • Sidebar tabs use full-row tap targets (was only clickable on text)
  • Settings window appears above teleprompter overlay so you can actually use it while presenting

Keyboard shortcuts

  • Cmd+Enter: start/stop teleprompter
  • Cmd+R: start/stop recording
  • Escape: stop teleprompter (was missing in pinned mode)
  • Hover tooltips show shortcuts on action buttons

Toolbar cleanup

  • Centered editable document title — click to rename, used as default filename on save
  • Removed redundant "+ Page" button and language label from header
  • Teleprompter button icon changed to text.viewfinder

Bug fixes

  • Array index crash in rewindByWords when recognizedCharCount exceeded text length
  • Hand gesture indicator persisting after teleprompter dismiss
  • Preview panel no longer steals keyboard focus from settings

Test plan

  • Adjust width/height sliders — verify panel resizes live
  • Start teleprompter at 80% width — verify text wraps and fits
  • Switch settings tabs — verify no jumping or click issues
  • Cmd+Enter to start, Escape to stop
  • Edit title, Cmd+S — verify save dialog uses edited name
  • Reset All — verify defaults restored (45% width, 40% height, 20pt font)

Nathanael and others added 4 commits March 22, 2026 20:05
…gs reorganization

Replace fixed pixel dimensions with percentage-based sliders:
- Window width: 20-80% of screen (was 310-500px)
- Window height: 5-50% of screen (was 100-400px pixels)
- Single font size slider (14-100pt) in Appearance tab for all modes
- Remove FontSizePreset enum and fullscreenFontSize in favor of one fontSize

Settings reorganization:
- Font size moved to Appearance (global)
- Dimensions moved to Teleprompter tab (mode-specific)
- Display mode (Follow Mouse/Fixed) moved to Floating section
- Preview panel only shows on Teleprompter tab
- Fixed settings window height to prevent jumping between tabs
- Sidebar tabs use onTapGesture with zero spacing for reliable clicks

Live updates:
- Panel resizes in real time when width/height sliders change
- Polls at 10Hz for actual setting changes (not blanket UserDefaults observer)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clamp offset to sourceText length and guard empty text to prevent
crash when recognizedCharCount exceeds sourceText during hand gesture rewind.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keyboard shortcuts:
- Cmd+Enter: toggle teleprompter play/stop
- Cmd+R: toggle recording
- Escape: stop teleprompter (fixed missing key monitor in pinned mode)

Toolbar:
- Centered editable document title (click to rename, Enter to confirm)
- Edited name used as default when saving new files
- Removed + Page button and language label from header
- Teleprompter icon changed to text.viewfinder
- Hover tooltips showing keyboard shortcuts on action buttons

Hand gesture indicator:
- Clear callback on dismiss to prevent indicator persisting after session
- Guard against firing when no panel is active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant