diff --git a/README.md b/README.md index e6d5bf065..7210d0f1a 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ A full custom theme engine layered on top of Cinny's vanilla-extract theming: - Palette: bg `#030508`, orange `#FF6B00`, cyan `#00D4FF`, green `#00FF88`, text `#c4d9ee` - Monospace font stack, terminal-style scrollbars - Custom hex-grid and circuit-board CSS background patterns -- Matrix-style boot messages on the welcome page +- Matrix-style boot messages on the welcome page (press Escape to skip) - CSS variables: `--lt-*` family covering colors, glow effects, borders, animations **Light mode** (`LotusTerminalLightTheme`): @@ -38,7 +38,7 @@ A full custom theme engine layered on top of Cinny's vanilla-extract theming: - Scoped to `html[data-theme="light"] body.lotusTerminalBodyClass` - `ThemeManager.tsx` sets `data-theme` attribute based on active theme kind -**Chat Backgrounds** (18+ custom patterns, all TDS-aware): +**Chat Backgrounds** (20+ custom patterns, all TDS-aware): - Blueprint grid, carbon fiber, starfield, topographic contours, herringbone, crosshatch - Chevron, polka dots, triangles, plaid - All patterns use CSS custom properties — adapt to both TDS dark and light themes @@ -57,6 +57,7 @@ A full custom theme engine layered on top of Cinny's vanilla-extract theming: - Visual indicator: plain folds `Chip` by default; when LotusGuild TDS is active: orange `PTT — Hold SPACE` / green `● LIVE` in JetBrains Mono - Listens on both main window and EC iframe `contentWindow` for reliable key capture - Implemented via `CallControl.setMicrophone()` public method on the widget bridge + - **Mic state preservation**: when enabling PTT mode mid-call, the user's previous mic state is saved and restored when PTT is disabled — prevents unwanted unmute if the user had manually muted before switching to PTT. - **Noise suppression toggle**: Settings > General > Calls — passes `noiseSuppression` URL parameter to the embedded Element Call widget - **Call button scoping**: The upstream Cinny 4.12.1 call button (voice + video dropdown) is restricted to DMs and private group chats only. Specifically: direct messages, or invite-only rooms that have no `m.space.parent` state event (i.e. not a space/guild text channel). Public rooms and space channels are excluded to prevent accidental mass-notifications. `Room.tsx` switches to CallView layout when a call embed is active in the current room. - **Poll display**: `m.poll.start` events (both stable Matrix 1.7 `m.poll` content key and MSC3381 unstable `org.matrix.msc3381.poll.start`) render as read-only poll cards inside the standard message bubble — question and answer options shown. Registered as top-level event renderers AND inside the `EncryptedContent` callback so encrypted polls also display after decryption. "Open in Element to vote" note displayed. Implemented in `PollContent.tsx`. @@ -65,7 +66,7 @@ A full custom theme engine layered on top of Cinny's vanilla-extract theming: ### Messaging Enhancements -- **GIF picker**: Giphy-powered GIF search and send. Button appears in the message composer only when `gifApiKey` is set in `config.json`. Sends GIF as `m.image` — fetches blob, uploads via `mx.uploadContent`, sends with `mx.sendMessage`. `FocusTrap` handles click-outside / Escape to close. When TDS is active: dark navy background (`#060c14`), orange dim border, `// GIF_SEARCH` header, injected `