Secousse v0.2.0
Highlights
Watch up to four streams at once in a split-screen grid, or detach any stream into its own always-on-top window. Audio routes automatically to whichever tile you click — no more juggling tabs during raids, tournaments, or multi-POV events.
Features
- Multi-stream grid (1–4 tiles). Shift+click a channel in the sidebar or the browse grid to add it to a CSS-grid layout. Click any tile to focus it: the focused tile owns the audio, the chat, and the stream info panel. Per-tile remove (×) and pop-out buttons in the hover overlay. Layout adapts automatically: 1 col for solo, 2×1 for duos, 3×1 / 2×2 beyond.
- Pop-out windows. Detach a stream into an independent Tauri window via the ↗ icon (sidebar, browse card, or grid tile). Pop-out has a minimal header with toggleable chat and an always-on-top pin. Re-opening a pop-out for the same channel focuses the existing window instead of duplicating it. Each pop-out tracks the current channel in its URL, so reloads stay on the same stream.
- Persistent grid. Your tile layout and focused tile are restored on launch. Single-stream usage stays identical — the grid is
[channel]under the hood.
Under the hood
- Per-channel emote cache (LRU, cap 5). Switching focus inside a grid no longer re-fetches 7TV/BTTV/FFZ/Twitch emote lists. Inflight requests are deduped so two tiles loading the same channel only hit the API once.
- VideoPlayer gains
compactandforceMutedmodes. Non-focused tiles render without the fullscreen button and ignore the persisted volume/mute preferences (so flipping focus between tiles doesn't silently clobber your saved volume). Mute button and slider are disabled with a clear visual treatment on muted tiles. useUserInfohook extracted fromApp.tsx. Each tile owns its own polling loop, decoupling the focused tile's lifecycle from the rest of the grid.- Rust backend: new
open_popoutcommand,popout-*capability glob,set_always_on_topandclosepermissions.
Full changelog: v0.1.5...v0.2.0