Commit Graph
97 Commits
Author SHA1 Message Date
Alan Trebugeais 5a2cfee6b4 add: better performance through RAF of the Camera preview overlay dragging (avoiding re-renders)
add: SourceSelector marquee (scrolling text when too big)
2026-05-07 00:17:05 +02:00
Alan Trebugeais 50a58f80a9 added: more hooks for further seperating the code for LaunchWindow
fix: Icons that were deprecated (mostly added Icon at the end of each ones.) I also removed "as" Microphone as Mic everywhere... Let's use normal icon names
2026-05-07 00:05:58 +02:00
Alan Trebugeais 9981f4d1de just moved the hooks into launch/hooks (no needed for a global scoped hooks) 2026-05-06 23:54:37 +02:00
Alan Trebugeais 7f564c90bf add: Hooks in order to further reduce launchwindow logic
LaunchWindow could still be further reduced, but honestly from 1600 lines to 650  lines is a win
2026-05-06 23:54:15 +02:00
Alan Trebugeais ff2759448a better code in sources/launchwindow/source
add: caching for 1.2s for a better user experience, less refreshing, it's actually instant now.
2026-05-06 23:32:58 +02:00
Alan Trebugeais c7dc99710b fix: hud overlay was flashing white (because I added a fullscreen window to render the overlay, otherwise it wouldn't stop jittering.)
add: launchTheme.css to have everything under the same variables.
2026-05-06 23:16:52 +02:00
Alan Trebugeais df785a8cbc fix: overflow, add window in fullscreen mode to avoid jittering when opening up select...
add: launchTheme.css for consistent styling accross the whole components spectrum related to LaunchWindow
add: correct styles accross the popovers! with unstyled parameters in Popover.tsx because it was needed to make sure its the same
2026-05-06 23:12:03 +02:00
Alan Trebugeais 877a43ad0c better mouse posiitoning 2026-05-06 22:28:37 +02:00
Alan Trebugeais cf66f3111c fix: popovers are now seperated into different components, still not everything right but it's getting there 2026-05-06 22:26:03 +02:00
Alan Trebugeais 8a3539abef add: LaunchWindow source selector without that much of a jitter. it's still weirdly behaving but it's better 2026-05-06 21:50:07 +02:00
Alan Trebugeais 972ebad9da add: source selector with incredible marquee !!! 2026-05-06 20:36:54 +02:00
Alan Trebugeais 7618187a49 add: SourceSelector part 1. not refactoring (next commit!) 2026-05-06 19:52:21 +02:00
Alan Trebugeais 729392c06c fix: Launchwindow Button instead of IconButton, reusing button.tsx
add: button.tsx "iconSize" variants for different icons size, replacing effectively iconButton. and can be reused accross the whole app.
fix: RecordingControls with those same ui component !
2026-05-06 19:36:52 +02:00
Alan Trebugeais b1a0667a1c edit: LaunchWindow, RecordingControls for seperations of concern
fix: SourceSelection performances
add: seperator.tsx for "divider" component, instead of a non-generic component. can be reused elsewhere!
2026-05-06 19:34:21 +02:00
Shuwn Hsu a9e70069c8 feat(i18n): Fix locale tags 2026-04-29 00:29:24 +08:00
webadderall fb34bf2ef9 Address CodeRabbit review feedback 2026-04-27 16:04:04 +10:00
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