Add the Windows shell: overlay, tray and the Svelte UI

Tauri 2 app around prompt-core. Classic and Voice-Activated run end to end;
Word Tracking is wired but idle until the on-device recogniser lands, so the
UI marks it unavailable rather than offering a mode that does nothing.

The overlay is placed on the top edge, not the taskbar. The macOS notch
overlay works because it keeps the presenter's eyes near the lens; on Windows
the camera is above the monitor and the taskbar is pinned to the bottom, so a
bottom-docked prompter would have them reading off their own lap. The taskbar
placement carries transport controls only, as a plain always-on-top window
rather than a registered AppBar — an AppBar reserves desktop work area and
leaves it wrong if the process dies.

Three extended style bits and one affinity call do what no cross-platform
window API exposes: WS_EX_NOACTIVATE so showing the prompter never pulls focus
off the app being presented, WS_EX_TOOLWINDOW to stay out of Alt-Tab,
WS_EX_TRANSPARENT for click-through, and WDA_EXCLUDEFROMCAPTURE to stay out of
screen shares. The last one needs Windows 10 2004+, so its result is reported
to the UI instead of being swallowed — the app must not promise privacy it
cannot deliver.

Audio metering rides along with the frame tick rather than using its own
command. Two round trips per animation frame is real cost for something that
runs beside OBS, and a split also let the speech gate be read a frame before
the sample that would have opened it.

HWNDs cross into window_effects as isize so this crate is not pinned to
whichever `windows` version Tauri happens to link.
This commit is contained in:
CRTkafa 2026-08-24 05:10:29 +07:00
parent 8a34bd1df1
commit fd42bc784a
33 changed files with 8642 additions and 11 deletions

BIN
src-tauri/icons/128x128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB