Backspace 1.2.0
Backspace 1.2.0
Scale the interface to your eyes, share system audio without echoing viewers
back to themselves, and use voice shortcuts on Wayland. Instances can also opt
in to a daily ping so the project knows how many of them are out there.
Interface scale
Settings, Account now has an interface scale: 75% to 250% in 25% steps. It
scales the whole client in the browser and in the desktop app, is stored per
device rather than per account, and applies on the login screen too. Browser
zoom still works on top of it.
The mobile and desktop layouts now switch on the scaled width, so a wide window
at 200% gets the mobile layout. Thanks @st7105.
Telemetry, off by default
Your instance can send one small JSON document a day so the project can see how
many instances exist and what they run. Admins are asked once. Declining costs
nothing, and nothing leaves the instance unless someone says yes.
It sends a random instance id, the Backspace and Node versions, rounded counts
of users, spaces, channels, messages and active users by client, and whether
voice, federation and open registration are on. It never sends usernames, your
domain, addresses, message content or file names. The receiver keeps the country
and drops the rest of the request.
You can read the exact payload before deciding, and at any time after, under
instance settings. TELEMETRY=on or off before install.sh answers the
question ahead of time for scripted installs, TELEMETRY_ENDPOINT points at
your own receiver, and what comes back is public on the
insights page.
Voice shortcuts on Wayland
Mute, deafen and push to talk now work on Wayland through the GlobalShortcuts
portal, including while another application has focus. Wayland hands shortcut
assignment to the desktop, so Keybinds shows what the system has assigned and
sends you to system settings to change it. X11, Windows and macOS are unchanged.
Leaving a call also releases the microphone now. The client had been stopping a
copy of the track instead of the capture itself, so the recording indicator
could stay lit after a call. Thanks @st7105 and @gr1n-the-big-floppa.
Screen shares stop feeding viewers their own voice
Sharing system audio could send viewers their own voice back. Backspace asked
Electron to exclude its own playback, and Electron ignored the request. The
desktop app now ships Electron 43.6, which honors it on macOS and Windows. Linux
loopback is unchanged; the upstream fix does not cover it.
The exclusion covers everything Backspace plays, so a YouTube or Spotify embed
inside the app no longer reaches viewers through a system-audio share either.
Play it in another application if you want to share it.
Two things worth knowing. An audio router such as SoundSource replays call audio
through a separate process, which no setting in Backspace can exclude, so
exclude Backspace there as well. And nobody has run a real two-person call on
this build yet: the code path and the upstream fix were reviewed, that is all.
#136 stays open, so tell us
what you hear. Thanks @akk0sfx.
Also fixed
- Clicking a message notification opens the DM or channel it came from and
restores a minimized window, instead of only focusing the app (#130, @st7105). - Uploads work when the instance runs on a custom public port behind a reverse
proxy, for exampleDOMAIN=chat.example.com:1443(#44). Federation across a
custom port is still unsupported. - Image preview controls stay below the native title bar on the desktop app
instead of hiding under the window buttons (#129, @st7105).
Around the project
The insights page now charts repository traffic and the telemetry aggregates and
publishes both as plain tables. CONTRIBUTING asks for a design before code on
architectural changes and says what is expected of agent-written work. Pull
requests from forks get an automatic summary of what they touch before anyone
approves CI.
Updating
Instances. docker compose pull && docker compose up -d, or ./deploy.sh.
The telemetry settings migration runs at boot and sends nothing by itself.
Desktop. The installers below update themselves. The web client comes from
your instance, so interface scale reaches the browser as soon as the instance is
on 1.2.0.