feat(desktop): port v0.11.4-v0.15.2 from Tauri to Electron + Discord-parity audio (v0.16.0)
Chronological port of every Tauri release commit (v0.11.4 -> v0.15.2)
into the Electron rebuild, plus Discord-style audio handling that goes
beyond the Tauri original.
Highlights:
- All 17 Tauri release commits ported (audio fixes, custom notification
sound, Discord-style chat UX, profile banner, changelog page,
Discord-parity call UX, screen-share echo + re-watch UX, audio-loop
fix).
- Native napi-rs audio-loopback addon with WASAPI process-loopback:
* EXCLUDE_TARGET_PROCESS_TREE for full-screen shares -> peers
never hear themselves echoed back through the capture.
* INCLUDE_TARGET_PROCESS_TREE for window shares -> only the
picked window's audio is captured, not the whole OS mixer
(Discord parity).
* HWND -> PID resolution via Win32 GetWindowThreadProcessId.
- Discord-style screen-source picker (thumbnail grid, screens vs
apps tabs, live-refreshing thumbnails).
- Hash routing fix for packaged builds (file:// can't resolve
BrowserRouter paths).
- Tauri sources removed (apps/desktop/src-tauri).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
@tailwind utilities;
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Clean-Rail design tokens.
|
||||
* Desktop chat design tokens.
|
||||
*
|
||||
* `--bg-rgb / --fg-rgb / --accent-rgb` are *space-separated rgb triplets*
|
||||
* (no `rgb(...)` wrapper) so Tailwind's `rgb(var(--x) / <alpha-value>)`
|
||||
@@ -16,26 +16,26 @@
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--bg-rgb: 250 250 249;
|
||||
--bg-2-rgb: 244 244 242;
|
||||
--bg-rgb: 246 247 250;
|
||||
--bg-2-rgb: 235 237 242;
|
||||
--bg-3-rgb: 255 255 255;
|
||||
--fg-rgb: 10 10 15;
|
||||
--fg-muted-rgb: 115 115 128;
|
||||
--accent-rgb: 79 70 229;
|
||||
--fg-rgb: 24 25 28;
|
||||
--fg-muted-rgb: 91 95 104;
|
||||
--accent-rgb: 88 101 242;
|
||||
--accent-fg-rgb: 255 255 255;
|
||||
--line: rgba(10, 10, 15, 0.08);
|
||||
--line: rgba(24, 25, 28, 0.1);
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--bg-rgb: 5 5 7;
|
||||
--bg-2-rgb: 17 17 24;
|
||||
--bg-3-rgb: 10 10 15;
|
||||
--fg-rgb: 244 244 245;
|
||||
--fg-muted-rgb: 138 138 153;
|
||||
--accent-rgb: 109 115 255;
|
||||
--bg-rgb: 30 31 34;
|
||||
--bg-2-rgb: 43 45 49;
|
||||
--bg-3-rgb: 49 51 56;
|
||||
--fg-rgb: 242 243 245;
|
||||
--fg-muted-rgb: 148 155 164;
|
||||
--accent-rgb: 88 101 242;
|
||||
--accent-fg-rgb: 255 255 255;
|
||||
--line: rgba(255, 255, 255, 0.07);
|
||||
--line: rgba(255, 255, 255, 0.08);
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
@@ -51,6 +51,32 @@
|
||||
font-feature-settings: 'cv11', 'ss01';
|
||||
}
|
||||
|
||||
* {
|
||||
scrollbar-color: rgb(var(--fg-muted-rgb) / 0.36) transparent;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
height: 10px;
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgb(var(--fg-muted-rgb) / 0.28);
|
||||
border: 3px solid transparent;
|
||||
border-radius: 999px;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: rgb(var(--fg-muted-rgb) / 0.44);
|
||||
border: 3px solid transparent;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
::selection {
|
||||
@apply bg-accent/40 text-white;
|
||||
}
|
||||
@@ -72,11 +98,27 @@
|
||||
}
|
||||
.bg-grid {
|
||||
background-image:
|
||||
linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
|
||||
linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
|
||||
background-size: 32px 32px;
|
||||
background-position: -1px -1px;
|
||||
}
|
||||
.discord-panel {
|
||||
background: rgb(var(--bg-2-rgb) / 0.94);
|
||||
border-color: var(--line);
|
||||
}
|
||||
.dark .discord-rail {
|
||||
background: #1e1f22;
|
||||
}
|
||||
.dark .discord-chat-panel {
|
||||
background: #2b2d31;
|
||||
}
|
||||
.dark .discord-chat-surface {
|
||||
background: #313338;
|
||||
}
|
||||
.dark .discord-composer {
|
||||
background: #383a40;
|
||||
}
|
||||
/* Glass pill used for the fullscreen call controls bar. */
|
||||
.glass-pill {
|
||||
background: rgba(10, 10, 15, 0.7);
|
||||
|
||||
Reference in New Issue
Block a user