github Psychotoxical/psysonic app-v1.40.0
Psysonic v1.40.0

latest release: v1.41.0
5 hours ago

πŸ›‘οΈ A note on safety investments: Making sure Psysonic is trusted on every OS takes real money out of my pocket β€” an Apple Developer Account (now active, which is why macOS builds are signed + notarized for everyone starting with this release) and a Windows code-signing certificate (ordered, currently in validation). If you'd like to help cover those costs, you can chip in at ko-fi.com/psychotoxic β€” completely voluntary, no pressure at all. Every bit helps keep Psysonic free and safe across Windows, macOS and Linux.

⚠️ Windows users: This is one of the last releases with an unsigned Windows installer. Until the certificate clears validation, any SmartScreen or antivirus warning on the installer is a false positive β€” the binary itself is safe.

πŸŽ‰ macOS users: Starting with v1.40.0, Psysonic is signed + notarized and can update itself silently. No more DMG downloading and dragging to Applications β€” the updater fetches the signed .app bundle, verifies the signature, replaces the app in place, and relaunches. Just click "Install now" when the update notification appears.

πŸ“¦ Version jump 1.34.x β†’ 1.40.0: The 1.34.x patch series was bumped a lot as each small feature landed. 1.40.0 consolidates the last few weeks of work β€” macOS signing + auto-updater, the Device-Sync overhaul, theme work and contrast audits β€” into a single coherent release. The next major bump (2.0.0) is planned once Windows code-signing + Windows auto-updater are active as well.

Added

  • macOS β€” signed and notarized builds (by @Psychotoxical): macOS releases are now signed with a Developer ID Application certificate and notarized by Apple. Gatekeeper no longer shows the "app from unidentified developer" dialog; the DMG opens and runs with a single click on both Apple Silicon and Intel Macs. Signing + notarization happens in CI on every release.

  • macOS β€” in-app auto-update (by @Psychotoxical): The Tauri Updater plugin is now active on macOS. When a new release is available, clicking Install now in the notification modal downloads the signed .app.tar.gz bundle, verifies its minisign signature against the bundled public key, replaces /Applications/Psysonic.app in place, and relaunches the app β€” all in one click, no Gatekeeper re-approval, no manual DMG handling. The modal shows trust badges ("Notarized by Apple" + "Signature verified"), a 3-second restart countdown after install with a manual "Restart now" option, and hides redundant buttons during each download/install phase. Windows and Linux continue to use the existing "download installer / point to folder" flow until their signing pipelines are wired up.

  • WebKitGTK wheel scroll mode (Linux) (contributed by @cucadmuh, PR #207): The Linux build now defaults to WebKitGTK's native smooth (kinetic) wheel scrolling and exposes a toggle in Settings β†’ General to fall back to classic linear line-by-line scroll. Existing installs are migrated to smooth scrolling once, after which the toggle is fully user-controlled.

Changed

  • Device Sync β€” fixed naming scheme + playlist folders (by @Psychotoxical): The user-configurable filename template is gone. Every sync now writes files under a single, non-negotiable scheme:

    • Album / artist sources: {AlbumArtist}/{Album}/{TrackNum:02d} - {Title}.{ext}
    • Playlist sources: Playlists/{PlaylistName}/{Index:02d} - {Artist} - {Title}.{ext} plus a self-contained .m3u8 that references sibling filenames.

    Why: different OSes normalised separators and special characters differently, so the same library synced from macOS and then plugged into a Windows machine appeared "different" and re-downloaded every album. The fixed scheme ends that forever.

    Playlist folders instead of the album tree: playlists used to be scattered across the album structure as .m3u8 references. For playlists with 40 artists that meant 40 new folders on the stick. Now every playlist is one self-contained folder; the .m3u8 sits inside it and references siblings, so you can copy the whole folder anywhere.

    Migration for existing sticks: a "Reorganize existing files…" button on the Device Sync page reads the legacy template from the v1 manifest, computes per-track rename pairs, detects collisions, and executes atomic fs::renames. Empty directories left behind are cleaned up automatically. Playlist tracks synced under the old scheme are left for the next sync to re-download into the new playlist folder, rather than being force-moved.

    Album-Artist fallback: libraries without an albumArtist tag fall back to the track artist β€” "Unknown Artist" is only ever a last-resort placeholder.

Fixed

  • WCAG contrast audit β€” Middle-Earth theme (by @Psychotoxical): Raised --warning, --border, --text-muted, --positive, and multiple component-level overrides (connection indicators, nav section labels, lyrics status, queue duration, player time, glass-panel muted text) to AA thresholds on all background variants. The warm bronze / aged-parchment palette is preserved β€” no cool tones introduced.

  • WCAG contrast audit β€” Nucleo theme (by @Psychotoxical): Darkened --warning, --border, --text-muted, and --positive tokens to reach AA on the warm cream palette; added a component-level override for the column resize grip (default --ctp-surface1 was 1.08:1 on the card background, effectively invisible) using the new --border token at 2px width. Brass-and-parchment aesthetic preserved.

Contributors

  • PR #205 β€” Apple Music-style scrolling lyrics with spring-physics scroll, by @kilyabin.
  • PR #206 β€” Golos Text + Unbounded fonts with Cyrillic support, by @kilyabin.
  • PR #207 β€” WebKitGTK wheel scroll mode toggle, by @cucadmuh.

All three now credited in Settings β†’ About.


Don't miss a new psysonic release

NewReleases is sending notifications on new releases.