tonearm

module
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2026 License: GPL-3.0

README

Logo

Tonearm

Forks Stargazers Issues License

Tonearm is an unofficial native GTK4 / Adwaita music streaming client for TIDAL
How to Install »

Features · Report Bug or Request Feature · Join the Matrix Room

Screenshot of the home page of Tonearm

Disclaimer

Tonearm is not affiliated with or endorsed by TIDAL. Tonearm is provided as-is without any warranty or guarantees. We explicitly do not offer and are not planning to offer any kind of offline playback functionality, Tonearm is not a downloader. A paid TIDAL account is required for full-length playback.

Features

  • Background Playback
    • Can be brought back to the front by MPRIS or by simply starting the app again
  • Configurable through dconf
  • Gapless Playback
  • MPRIS playback information and player controls
  • Position-aware Lyrics Viewer
    • Fallback to plain lyrics viewer if the song does not have timestamped lyrics
  • Scrobbling to ListenBrainz-compatible servers
  • Sign-in to your account via QR code / device linking code
    • Also works without signing in, with limited playback duration (Same as TIDAL web)
  • Supports playback of tracks in Max (AKA Master) quality
    • Currently, Tonearm will always play at the highest available quality
  • Works with "Open in TIDAL" links (E.g. tidal://my-collection)

About the Project

We set out to create a native, modern looking streaming client for TIDAL built with GTK4 and Libadwaita. We oriented a lot on existing GNOME apps (both official and third-party) to ensure the client really fits into the GNOME desktop and its applications, something web apps and electron apps often struggle with. We also try to keep the general spirit of TIDAL's UI so users can understand the app relatively quickly.

Tonearm came to existence as a learning project on how to implement GTK apps using GoLang, a rather unconventional choice. It was also an attempt at re-creating the look and feel of writing GUI applications in SwiftUI. This resulted in the development of the UI library schwifty which may be extracted into its own repository at some point.

The current design for Tonearm originally came to be when I tried myself on a re-design of High Tide. This is why the sidebar features a very similar player layout. The rest of the application has largely been designed after common GNOME app practices and the TIDAL web interface.

Installation

Currently the only tested installation method is the Nix flake provided in the repository. If you want to package this software for another distro or marketplace, please do open an issue so we can coordinate.

NixOS (Flake)

This assumes that your system configuration is already done using a system flake. First add this repository as an input to your flake.

inputs = {

    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

    ... your other inputs ...

    tonearm = {
      url = "git+https://codeberg.org/dergs/Tonearm.git";
      inputs.nixpkgs.follows = "nixpkgs";
    };

}

then add this anywhere in your system configuration as you see fit

{ inputs, ... }:

{

  # System Packages
  environment.systemPackages = [
    inputs.tonearm.packages.${pkgs.stdenv.hostPlatform.system}.tonearm
  ];

  # Or if you prefer via Home Manager
  home.packages = [
    inputs.tonearm.packages.${pkgs.stdenv.hostPlatform.system}.tonearm
  ];

}

Arch Linux (AUR)

You will require an AUR helper, such as yay or paru.

This assumes you are using the yay helper. If using paru, adapt the commands accordingly.

yay -S tonearm

Translations

You can bring Tonearm to even more people by helping us translate it into their native language! To make this easier, Tonearm's translations can be edited on Codeberg's Weblate instance!

Screenshots

Explore Page Screenshot of the explore page
Search + Lyrics Screenshot of the search page and lyrics

Acknowledgements

The following projects and resources served as inspiration or were helpful during the development of Tonearm.

  • High Tide for the original design of the player in the sidebar
  • puregotk for making this project possible with only minimal CGO bindings
  • TIDAL for the overall page designs, which we adapted for GTK

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL