Commit Graph
81 Commits
Author SHA1 Message Date
webadderall bbd46b44ac Fix video wallpaper sync and streamline updater UI 2026-04-27 15:48:38 +10:00
webadderall 2d23885bd3 style(ui): use SF Pro globally and add release helper 2026-04-26 20:36:01 +10:00
webadderall 624c3047be Improve HUD and update prompt UI 2026-04-25 21:34:55 +10:00
webadderall 66bd91e6a5 Merge pull request #321 from meiiie/fix/win10-floating-webcam-preview
fix(launch): disable floating webcam preview without passthrough
2026-04-25 00:44:41 +10:00
Uri 8c7c57aa1c fix(linux): allow dragging HUD overlay on Wayland via native OS drag
BrowserWindow.setBounds() with x/y is silently ignored on Wayland (the
compositor owns window placement), so the IPC-driven HUD drag never
moved the window \u2014 it stayed put even though pointer events fired and
the cursor changed to grabbing.

Mark the drag handle as -webkit-app-region: drag on Linux (only in the
IPC/overlay mode; webcam-preview mode still uses the in-window CSS
transform) so the OS performs a real xdg_toplevel.move. Mirror the
resulting bounds into hudUserPosition via the window 'moved' event so
commit a78f7d4's in-place resize behavior keeps working on Linux.
2026-04-23 14:52:40 +03:00
wiiiii123 bac0a0282f fix(launch): disable floating webcam preview without passthrough 2026-04-23 10:52:41 +07:00
wiiiii123 fcccd1def6 fix(launch): use live HUD bounds after drag 2026-04-21 02:54:00 +07:00
wiiiii123 316c11035c fix(launch): keep HUD interactive after short drags 2026-04-21 02:25:56 +07:00
Uri b200deddca fix(linux/wayland): address PR review feedback
- electron/main.ts: treat missing sourceId on linux as portal sentinel
  so the request handler never calls getSources() (which itself opens
  an extra portal dialog) on fresh sessions.
- useScreenRecorder.ts: persist the synthesized portal sentinel via
  selectSource() so main has the source set before getDisplayMedia.
  Extract acquireLinuxPortalStream() helper to dedupe the three
  duplicated getDisplayMedia constraint blocks.
- LaunchWindow.tsx: hide the screen-source selector button (and its
  separator) on Linux so users cannot trigger an extra portal dialog
  via the dropdown.
2026-04-18 16:38:52 +03:00
Uri 571bbb9434 fix(linux/wayland): collapse 3-step capture flow into a single portal dialog
Previously on Linux/Wayland, starting a fullscreen recording required three
separate picker interactions: an in-app source dropdown plus two xdg-desktop-portal
dialogs. The duplicate portal dialogs were caused by:

1. resolveBrowserCaptureSource() calling desktopCapturer.getSources() in the
   renderer, which itself triggers the portal on Wayland.
2. setDisplayMediaRequestHandler() in main also calling getSources(), which
   triggers another portal.
3. Returning a pre-enumerated source id to Chromium, which on Wayland is stale
   and forces Chromium to re-prompt via the portal during MediaStream creation.

Additionally, the editor window failed to appear after recording on some
Wayland sessions because 'ready-to-show' did not fire reliably.

Changes:
- LaunchWindow: skip the in-app source dropdown on Linux and start recording
  directly; the OS portal becomes the source picker.
- useScreenRecorder: introduce a 'screen:linux-portal' sentinel source. When
  set, route capture through navigator.mediaDevices.getDisplayMedia() so the
  portal handles selection in a single dialog. Skip resolveBrowserCaptureSource
  for the sentinel to avoid an extra getSources() call.
- electron/main: in setDisplayMediaRequestHandler, when the sentinel is set,
  skip desktopCapturer.getSources() entirely and return a synthetic source so
  Chromium opens the portal exactly once for the actual capture.
- electron/windows: in createEditorWindow, also call win.show() from
  did-finish-load as a fallback for Linux/Wayland where ready-to-show may
  not fire.
2026-04-18 16:17:08 +03:00
webadderall a83a58c671 fix: address ui overhaul review feedback 2026-04-16 22:36:23 +10:00
webadderall 9a5ff5c0a2 feat: ui overhaul — Phosphor icons, redesigned launcher, editor layout, and component refresh
- Replace all lucide-react imports with @phosphor-icons/react across every
  component (LaunchWindow, AnnotationSettingsPanel, ExtensionManager,
  ExtensionIcon, VideoPlayback, AnnotationOverlay, CropControl, TutorialHelp,
  PlaybackControls, all shadcn ui/ primitives, etc.)
- ExtensionIcon: new Phosphor-based resolver with Lucide name alias map for
  backwards-compatible extension manifests
- LaunchWindow / SourceSelector: full redesign — new icon rail layout,
  updated backgrounds, improved source selection UX, audio/video controls,
  countdown overlay
- VideoPlayback: overhaul playback controls and preview panel layout
- Timeline items: border-radius 16px→8px, cyan→blue unification, pill height
  85% for breathing room, resize handle vertical centering
- shadcn ui/: refresh accordion, dialog, dropdown, select, slider, switch,
  tabs, toggle, popover, button, card, input, label, sonner, content-clamp,
  audio-level-meter
- App.tsx / index.css / App.css / tailwind.config: global style updates
- types.ts, captionLayout.ts, captionStyle.ts, webcamOverlay.ts: data model
  updates to support new timeline and export features
- package.json: add @phosphor-icons/react, bump dependencies
- scripts/, .eslintrc, biome, tsconfig, vite.config: tooling alignment
- extension-sources: update built-in extension bundles
2026-04-16 18:01:04 +10:00
Long 79de74a2c0 Merge main into feature branch and resolve LaunchWindow conflict.
Keep the floating webcam preview container and pointer-drag behavior while integrating latest main changes.

Made-with: Cursor
2026-04-12 00:57:52 +07:00
Long 8e7513a175 fix HUD bar drag uses document events instead of pointer capture. 2026-04-11 02:05:35 +07:00
Long 49eac03e95 fix Outside-click handler attached to full-viewport wrapper. 2026-04-11 01:56:52 +07:00
Long d537a0a5e5 reformat 2026-04-11 01:26:50 +07:00
Long a322995cf9 fix an issue where the webcam preview following the hud movement 2026-04-11 01:01:41 +07:00
Long cf3d5607e0 update PR 2026-04-10 02:41:22 +07:00
Gilles Serrien a2ac46f416 feat(i18n): add Dutch (nl) locale 2026-04-08 20:51:10 +02:00
webadderall aa3018ea1e fix(i18n): add Korean label to locale switchers
Add ko: '한국어' to LOCALE_LABELS in LaunchWindow and VideoEditor so the language switcher shows the native name instead of falling back to the raw code.
2026-04-08 19:46:43 +10:00
TARO-gh 302676bb77 fix(hud-overlay): ignore duplicate drag mousemove events to stop hold-drift 2026-04-03 15:35:29 +09:00
Long 3fa1aa1e0b update coderabbit nitpick 2026-04-03 10:08:35 +07:00
Long 8ffebefac2 fix(launch): keep webcam preview stream attached across remounts
Store the live webcam preview stream in a stable ref and reattach it through callback refs so late-mounted preview videos receive srcObject immediately while preserving drag-end click-through restoration.

Made-with: Cursor
2026-04-03 09:55:41 +07:00
Long 5c6f6a2696 fix: capture webcam preview refs at effect setup to prevent stale closure reads 2026-04-03 09:35:05 +07:00
Long 68aa2a9686 feat(launch): add draggable floating webcam preview overlay
Show a live webcam preview as soon as webcam is enabled, keep it visible as a larger floating overlay, and allow drag repositioning across the HUD overlay area for expression monitoring while recording.

Made-with: Cursor
2026-04-03 08:42:50 +07:00
webadderall 0a30df9872 make dragger register 2026-03-30 14:21:00 +11:00
webadderall 9aac961c1d fix(hud): make transparent areas click-through
- Set setIgnoreMouseEvents(true, {forward: true}) on HUD overlay window
  so transparent areas pass clicks to apps behind
- Add hud-overlay-set-ignore-mouse IPC to toggle mouse events
- Re-enable mouse events on mouseenter over visible HUD content,
  disable again on mouseleave
2026-03-30 13:32:24 +11:00
webadderall 199f35d9b4 feat(launch): add update status badge to launch window toolbar
- Add update badge button that shows current updater state
  (idle, checking, up-to-date, available, downloading, ready, error)
- Badge triggers check/download/install based on current state
- Poll update status summary every 2.5s for live state reflection
- Add CSS module styles for badge variants (quiet, hot, spin)
- Add i18n strings for badge labels and tooltips (en, es, zh-CN)
2026-03-29 19:30:02 +11:00
webadderall 53c7aa7e77 feat(updater): Windows native notifications and toast window fixes
- Use native OS Notification on Windows instead of transparent overlay
  toast window (transparent BrowserWindows are unreliable on Windows)
- Set app user model ID on Windows for proper notification grouping
- Make toast window opaque with solid background on Windows
- Only set transparent body background on macOS for update-toast window
- Refactor UpdateToastWindow to inline styles for Windows compatibility
- Add primaryAction-based button rendering in toast UI
- Add polling fallback for toast payload in UpdateToastWindow
- Add global CSS variables for brand accent color
2026-03-29 19:30:02 +11:00
webadderall e717c812a7 fix invalid/stale mic selection windows 2026-03-29 11:07:34 +11:00
webadderall 9dd67717bc fix(launch): remove microphone dropdown separator 2026-03-28 22:55:13 +11:00
webadderall caf65cb59c fix(dev): isolate app data paths from production 2026-03-28 22:00:15 +11:00
webadderall dc1fddb241 feat(updater): add swipe and 3-day deferral 2026-03-28 21:22:56 +11:00
webadderall 641d3d271f feat(updater): add explicit download toast flow 2026-03-28 21:06:41 +11:00
webadderall 70cefabd57 Revert "fix(recording): validate native captures and tighten mic menu spacing"
This reverts commit 1900c0e737.
2026-03-27 11:31:02 +11:00
BortlesboatandClaude Opus 4.6 4b7f5947b8 fix: display app version in More menu
Add IPC handler to expose app.getVersion() to the renderer and
display it in the More dropdown menu. Users can now verify which
version they're running.

Fixes #70

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:15:04 -04:00
webadderall 6e69da0379 fix(hud): restore bar separators after dropdown divider change 2026-03-24 19:38:38 +11:00
webadderall 1900c0e737 fix(recording): validate native captures and tighten mic menu spacing 2026-03-24 19:04:24 +11:00
webadderall 1df365b5a5 fix(projects): align HUD browser behavior 2026-03-23 21:18:18 +11:00
webadderall 06b743f314 perf: remove launch source polling
Push selected-source changes from Electron to the launch window instead of polling every 500ms, reducing constant renderer and IPC churn. Also restore the TimelineEditor audio path narrowing fix so the current tree stays type-safe.
2026-03-22 21:03:26 +11:00
webadderall c1cb222995 Fix HUD overlay height sizing 2026-03-20 20:18:41 +11:00
webadderall dea8c76da7 Fix HUD layout and overlay sizing 2026-03-20 13:53:43 +11:00
webadderall ba91d367cf Animate launch HUD transitions 2026-03-20 13:03:26 +11:00
webadderall 8e8173cc58 Refine HUD recording toggle copy and spacing 2026-03-19 21:49:33 +11:00
webadderall f5ccd5b7e0 Fix Windows DXGI capture helper flow 2026-03-19 00:05:58 +11:00
webadderall ae521ed9d9 feat(windows): replace WGC with DXGI and fix HUD window bounds 2026-03-18 22:11:10 +11:00
webadderall bd01f06c97 Refine HUD menu controls and positioning 2026-03-18 18:36:25 +11:00
webadderall 24927e9b0b Fix TypeScript cleanup regressions 2026-03-18 18:36:25 +11:00
Gurpreet Kait ebe333f029 - tests driven
- language support
- webcame pause/resume sync
- native recording pause
- cancel (clears chunks and stops both recoders and webcame discarded on native cancel
- full lifecycle with webcame - pause - resume - stop keeps webcame in sync throughout
2026-03-18 11:59:58 +05:30
Gurpreet Kait 9679e20e48 Merge branch 'main' into feature/ui-improvements 2026-03-18 10:58:56 +05:30