mirror of
https://github.com/dohooo/helmor.git
synced 2026-09-22 16:40:02 +08:00
1e29a79fc8
Summoned with Shift+Alt+Space (configurable in Settings → Shortcuts): a small always-on-top frameless window that reuses the start surface + composer + conversation stack in its own webview (QuickShell), creates a workspace, streams the agent reply, and supports full multi-turn chat. Hidden (never destroyed) on close so its session survives across summons. Main-window flows are untouched when the feature is unused: every per-app singleton (updater, dock badge, location persistence, OS-hotkey sync, settings self-repair) is gated by window role, and the composer's narrow-surface compaction is pure CSS container queries. Also fixes a latent start-surface bug: the post-create view switch sat in a bare requestAnimationFrame, which WKWebView pauses entirely while the webview is hidden — raced with a 120ms timer fallback (#770 pattern).
43 lines
1.6 KiB
HTML
43 lines
1.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content"
|
|
/>
|
|
<title>Helmor</title>
|
|
<script>
|
|
;(() => {
|
|
var root = document.documentElement
|
|
var ls = localStorage
|
|
var t = ls.getItem('helmor-theme') || 'system'
|
|
var dark = t === 'dark' || (t === 'system' && window.matchMedia('(prefers-color-scheme:dark)').matches)
|
|
if (dark) root.classList.add('dark')
|
|
root.style.colorScheme = dark ? 'dark' : 'light'
|
|
var ct = ls.getItem(dark ? 'helmor-dark-theme' : 'helmor-light-theme') || 'default'
|
|
if (ct !== 'default') root.classList.add(`theme-${ct}`)
|
|
// User font overrides
|
|
var ui = ls.getItem('helmor-ui-font-family')
|
|
if (ui) root.style.setProperty('--font-sans-user', ui)
|
|
var mono = ls.getItem('helmor-code-font-family')
|
|
if (mono) root.style.setProperty('--font-mono-user', mono)
|
|
})()
|
|
</script>
|
|
<style>
|
|
body { background-color: #0E0E0E; }
|
|
html:not(.dark) body { background-color: #FFFFFF; }
|
|
/* Quick panel window (class injected via initialization script in
|
|
src-tauri/src/quick_panel.rs): the window is transparent and the
|
|
rounded card paints its own background. */
|
|
html.helmor-quick-window body { background-color: transparent; }
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|