Commit Graph
10 Commits
Author SHA1 Message Date
ancsemi 1c2cff9f72 Mute the mic while push to mute is held, mute winning over push to talk 2026-10-15 23:22:49 -04:00
ancsemi 0b8c04e708 Replace em dashes in the English UI text and messages 2026-10-10 16:08:54 -04:00
Bernardo Costa c3ade67336 Screen sharing: drop the native GStreamer path, add a bitrate setting, fix black tiles on GPU encoders (#5672)
The native GStreamer screen share path is gone: in a peer-to-peer mesh every
hardware and OS combination behaved differently, and keeping them in step cost
more than it saved. Screen sharing uses Chromium's own capture everywhere.

- Screen share bitrate is a setting: a stepper from 300 to 10,000 Kbps or
  unlimited, with press-and-hold repeat and typed entry. Changes apply live,
  including to a share going through the voice relay (debounced, so a hold
  becomes one update). The default stays 1080p at 30 fps with an 8,000 Kbps cap.
- Black screen share tiles on GPU encoders: the sharer asks for a fresh
  keyframe after negotiation, and the watchdog only re-adopts tracks a tile is
  not already showing.
- Relay screen publishing is serialized and tied to the share it was started
  for, so a stop, a new share or a relay restart can never publish a stale
  producer, and a failed first publish retries on its own.
2026-10-02 12:12:31 -04:00
Bernardo Costa dce7bd322e Add Compact Theme API v1 theme (#5549) 2026-09-01 19:28:11 -04:00
ancsemi ff46b149b1 Stop the voice "..." menu from shifting other users' icons
The per-user menu only renders on other people's rows. It was already hidden
until hover, but with opacity, which hides a thing without freeing its space:
it stayed in the flex flow with margin-left:auto and its own padding, so every
other user's stream badge and status icons stopped a button-width short of
where your own row's ended and the column never lined up.

It is positioned absolutely now, with the same slot reserved on every row, so
rows with and without a button share the same geometry. Measured with a real
stylesheet: the badge and icon edges were 31px apart before and are identical
after. pointer-events keeps the invisible button from swallowing clicks in
that corner, and it still reveals on hover or keyboard focus.

Also removes a second, older .voice-user-menu-btn block further down the file
that this was silently fighting with.
2026-08-04 23:32:15 -04:00
ancsemi 3baf4007ce fix: voice user rows showed a blank-looking second line
.voice-user-item was flex-wrap: wrap, and a wrapping flex line pushes whole
items to the next row rather than shrinking them. So the moment a user
picked up a LIVE, camera or viewer badge, the status icon group wrapped
onto a row of its own -- and since it carries margin-left:auto it sat at
the far right of that row, reading as an empty second line.

nowrap plus min-width:0 keeps the row on one line; the name already
ellipsises, so a long name truncates instead of wrapping. The stream badge
gets flex-shrink:0 so it is not squashed on the way.
2026-07-19 18:16:50 -04:00
ancsemi 3cb09d66f7 Fix emoji picker overlap, add punctuation emojis, reaction size setting, DM badge when collapsed, emoji channel names, view_all_members permission
- Fix emoji picker/dropdown overlapping quickbar buttons (left: 48px -> 0, z-index on input-actions-box)
- Add missing punctuation emojis to Symbols category (exclamation marks, colored circles, zodiac, keycaps, copyright/TM, etc.)
- Add emoji reaction size setting (small/normal/large/XL) in Settings next to font size picker (#203)
- Fix DM section badge not updating when DM section is collapsed (#204)
- Allow emoji characters in channel and sub-channel names via Unicode regex (#205)
- Add view_all_members to server-side validPerms array (permission was silently stripped on save)
2026-03-26 22:32:03 -04:00
ancsemi b1fa8c5aac Follow-up: make voice panel hiding and sidebar controls opt-in
- Voice panel visible on desktop by default (add 'Hide Voice Panel' setting)
- Mute/deafen buttons in voice panel header by default (add 'Sidebar Voice Controls' setting)
- Add header mute/deafen buttons back alongside sidebar buttons
- Sync both button sets via _syncMuteDeafenButtons helper
- Restore _renderVoiceUsers call in voice-users-update (respects setting)
- Restore voice-user-item.talking CSS + talking indicators for voice panel
- Deduplicate muted/deafened strikethrough CSS into shared rules
- Remove broken tlsClientError redirect (localAddress != hostname)
- Keep all PR #188 features: mute/deafen sync, graceful shutdown, deafen-implies-mute
2026-03-21 20:07:59 -04:00
James b018b29bec Mute/deafen state sync & voice sub-panel removal (#188)
- Mute/deafen state broadcast across voice channels
- Deafen-implies-mute with state memory
- Graceful SIGTERM/SIGINT shutdown
- Inline voice indicators with mute/deafen status
- Reconnect state preservation
2026-03-21 19:49:30 -04:00
James 6cb2113baa Voice bar redesign + extract voice CSS (#185)
Refactor: Moved voice styles to dedicated voice.css, since style.css is unmanageably large. Imported cleanly in style.css.

Co-authored by: ancsemi <ancsemi@users.noreply.github.com>
2026-03-20 16:36:51 -04:00