Skip to content

Add optional camera preview plugin for pre-meeting checks - #34

Open
digitalbase wants to merge 23 commits into
typecraft-dev:mainfrom
digitalbase:feat/camera-preview
Open

digitalbase wants to merge 23 commits into
typecraft-dev:mainfrom
digitalbase:feat/camera-preview

Conversation

@digitalbase

@digitalbase digitalbase commented Oct 23, 2026 •

Copy link
Copy Markdown

Adds an optional Open camera command for checking your webcam before a meeting. It opens a mirrored live preview in a separate window, with camera selection when multiple inputs are connected, and stops capture when closed. No recording or audio.

63270d0f-e2b0-4447-8e2b-5827b440d25b.mp4

The add-on is a separate Omarchy shell panel plugin using Qt Multimedia. It joins oma-cast through the existing menu extension API, without depending on the planned Raycast extension runtime or changing the launcher core. Installation and removal are documented; the plugin is opt-in and requires Qt Multimedia and a camera backend.

Validation: plugin manifest validation, JSON parsing, and diff checks passed. Tested on Omarchy with a Studio Display camera: the command is discoverable in oma-cast, launches the preview window, opens the camera, and releases it on hide. Multiple-camera selection and camera failure states need testing on additional hardware.

digitalbase and others added 23 commits October 23, 2026 15:31
Keeps Omarchy v4.5 kernel choices available in oma-cast and opens unsupported submenus in the stock menu. Covers both menu versions without relying on the installed Omarchy release.
Move matching into an optional flea-search helper while preserving
personalization and automatic fallback. Reuse QML rows and delegates,
publish selection atomically, and defer optional controls. On minipc,
paired search medians improved from 42.8-45.3 ms to about 7.7 ms.
perf(search): accelerate matching and result updates
…atibility

Adds kernel menus and provider fallbacks
Reuse stock guard batching and retain valid results on failed or partial refreshes.
Replace the flashing header stripe with delayed footer feedback that yields to toasts.
Minipc tests cover compiler fallback, atomic publication and the loading lifecycle.
Enter on an app now focuses its most recently used window, which also
switches to its workspace, and launches only when no window is open.
Windows match by desktop id, StartupWMClass, or the URL Chromium/Brave
web app classes are built from. Shift+Enter ("Open New Window") always
starts a new instance.

The focus waits for the launcher's layer to unmap: Hyprland refuses
focus while it holds exclusive keyboard focus and refocuses the previous
window when it goes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
On Omarchy 4.5's floating workspaces focus doesn't raise a window, so
switching to an open app could leave it behind the others. After focus
lands the window is now brought to the top, and one minimized to the
dock is first moved back to the current workspace, the same way the
dock does it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndows

Launcher - switch to an app's open window instead of relaunching
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Create omacast's dirs 0700 and store files 0600 before the first write,
  and tighten readable ones from older builds (never broadening a mode).
- Keep a private oma-cast.lua's mode when setup hyprland migrates it.
- Send clipboard text to wl-copy on stdin; paste with Shift+Insert, so no
  calculator or toast text reaches any process's argv.
- Remove the Ask default agent hand-off: omarchy-agent passes the prompt to
  every agent CLI as an argument, with no private transport.
- Replace the AGENTS.md symlink with a plain file; the validator rejects
  symlinks inside a plugin.
- Add tests/privacy.test.js covering all of the above under umask 022.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e-privacy

Keep histories and typed text private (marketplace review)
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.

5 participants