Repository navigation
5.20.0
Adds control over each media player, each app's sound, the power profile, keeping awake and the clipboard, and notifications with urgency, buttons and click events. Home Assistant can now discover System Bridge over mDNS. NixOS is supported with a flake, and releases ship Linux and Windows archives for mise and manual installs.
Media
- Read and control media over MPRIS on Linux, instead of through playerctl.
- List every player in
players, with the one described inplayer, and addSEEK,SET_VOLUME,SET_SHUFFLEandSET_REPEATtoMEDIA_CONTROL, with aplayerto control one other than the reported player. See controlling playback. - Report
is_seek_enabled, and whether a player can skip, so Home Assistant shows next and previous. - Resolve local cover art URLs into data URLs, so clients can show the artwork, thanks to @eikw (#4501).
Audio
- List the apps playing sound in
appson Linux, and turn each one up, down or mute it, or move it to another output withoutputonAUDIO_CONTROL. See audio.
System
- Report the active
power_profileandpower_profiles, and addSYSTEM_SET_POWER_PROFILEto switch through power-profiles-daemon. See power profiles. - Report
keep_awakeandkeep_awake_until, and addSYSTEM_SET_KEEP_AWAKEto keep the system from idling, optionally for aduration, through Omarchy's switch or a logind inhibitor. See keeping awake. - List which package updates are waiting in
package_update_list, with each one's version, not just how many.
Notifications
- Add
urgencyand up to three buttons to notifications.NOTIFICATION_SENTnow replies with anid, andNOTIFICATION_DISMISScloses the notification. Clients hearNOTIFICATION_ACTIONwhen it's clicked andNOTIFICATION_CLOSEDwhen it closes. See buttons, clicks and dismissing.
Clipboard
- Add
CLIPBOARD_SET_TEXTto put text on the clipboard on Linux. See clipboard.
Desktop
- Read and switch keyboard layouts on Sway and niri.
Discovery
- Advertise the IP, port and UUID Home Assistant needs in the mDNS record, on the primary IPv4 address rather than a bridge's such as Docker's.
Windows
- Send notifications through COM with go-toast v2, never PowerShell.
- Print CLI output in the console the app is started from.
Linux
- Add a Nix flake for NixOS, built in CI (#3387). See install.
- List every optional dependency in the docs and the packages, and describe System Bridge in its desktop entry.
Web client
- Add seek, shuffle, repeat and other players to the Media page.
- Add per-app sound, the power profile and keep awake, and notification urgency.
CLI
- Add
clipboard set,system power-profileandsystem keep-awake, with--for. - Add
seek,set_volume,set_shuffleandset_repeattomedia, with--player.
MCP
- Add
system_bridge_set_clipboard,system_bridge_set_power_profile,system_bridge_set_keep_awake,system_bridge_open,system_bridge_keyboard_keypress,system_bridge_keyboard_text,system_bridge_discord_controlandsystem_bridge_lock. - Add per-app sound to
system_bridge_audio_control, the new actions andplayertosystem_bridge_media_control, andurgencytosystem_bridge_send_notification.
Connector
- Add every new event, reply and field to the Python and TypeScript connectors.
Install
- Attach Linux and Windows archives to releases, for mise and manual installs, and document installing with them. See install.
Fixes
- Keep starting when another process writes the default settings first.
Moved
- Drop SSDP discovery and
SYSTEM_BRIDGE_SSDP_PORT. Nothing used it, and it announced the wrong address. Use mDNS instead. - Stop using playerctl on Linux, as media now goes through MPRIS directly.
Dependencies
- Move to go-viper/mapstructure, as mitchellh's is archived, and find the config, logs and user folders with adrg/xdg. The folders stay the same.
- Update @effect/tsgo to v0.62.0 (#4499) and wrangler to v4.153.0 (#4500).
Maintenance
- Track quickshell, BlueZ, dnf5, the desktop portal, winget and Omarchy prereleases in the tooling drift workflow.
- Refresh the Nix hashes on Renovate branches and after dependency commits.
Full Changelog: 5.19.0...5.20.0