Classical guitarists on Linux have traditionally had one reliable option for PDF annotation: a ballpoint pen and a laser printer (assuming your printer drivers actually worked on Linux without a 3-hour forum deep-dive). Today that changes. Rusty PIMA is now available as a native Linux desktop application, packaged as a .deb for Debian and Ubuntu-based systems, an .rpm for Fedora and RHEL, and easily installable on Arch Linux variants!

To understand our overall vision, the unique fretboard stamp features, and why our metronomes have been gathering dust since 2018, read our main announcement: Introducing Rusty PIMA — Collaborative Classical Guitar Score Editor.

This isn't a web wrapper or an Electron app. Electron apps eat RAM like a classical guitarist eats tapas after a grueling 3-hour recital. Rusty PIMA is compiled from pure Rust, rendered with egui (an immediate-mode native GUI framework), and ships as a single self-contained binary. It starts in under a second and runs comfortably without turning your CPU fan into a jet engine during a Villa-Lobos tremolo section.

"Your fingering annotations are serious work. They deserve an app that treats your CPU and battery life with the same respect."

Installation

Packages register Rusty PIMA as a PDF viewer via the freedesktop.org Shared MIME Info specification. Once installed, right-clicking any PDF in your file manager will show Rusty PIMA as an option under "Open With".

Debian / Ubuntu

Ubuntu 22.04+, Debian 11+, Linux Mint, Pop!_OS, elementary OS

Terminal
# Download and install wget /downloads/rustypima-linux.deb sudo apt install ./rustypima-linux.deb

Fedora / openSUSE / RHEL

Fedora 38+, openSUSE Leap 15.5+, RHEL 9+, AlmaLinux, Rocky Linux

Terminal
# Download and install wget /downloads/rustypima-linux.rpm sudo dnf install ./rustypima-linux.rpm

Arch / Manjaro / EndeavourOS

Arch Linux, Manjaro, EndeavourOS, Garuda (yes, we know you use Arch btw 💅)

Terminal (via debtap)
# Convert .deb to Arch pkg wget /downloads/rustypima-linux.deb debtap rustypima-linux.deb sudo pacman -U rustypima-*.pkg.tar.zst

After installation, run rustypima from any terminal, or launch it from your application menu. It will appear in the Office, Education, and Music categories. You can also set it as your default PDF viewer:

Set as default PDF viewer
xdg-mime default rustypima.desktop application/pdf

How PDF File Association Works

When the package installs, it drops three files onto your system and runs a pair of standard update hooks:

  • /usr/bin/rustypima — the main executable, compiled for x86_64
  • /usr/share/applications/rustypima.desktop — the freedesktop Desktop Entry declaring MimeType=application/pdf
  • /usr/share/mime/packages/rustypima.xml — MIME type registration for .pima annotation files
  • /usr/share/icons/hicolor/512x512/apps/rustypima.png — the app icon

The postinst script runs update-mime-database and update-desktop-database immediately, so the association is active the moment installation finishes — no reboot, no re-login required. Your file manager (Nautilus, Dolphin, Thunar, Nemo) will show Rusty PIMA in the "Open With" dialog for every PDF on the next file access.


What You Can Do With It

The full annotation toolkit is available on Linux, identical to the iPad and Android experience:

PIMA Fingering Stamps

One-click p, i, m, a, c stamps directly onto score notation. Precisely sized and coloured to your preference. Learn more about the design details in our Guitarist Stamps feature breakdown.

Barre Chord Tool

Draw Roman numeral barre indicators (CIII, CVII, ½C) with dashed span lines that fit cleanly across any measure.

Left-Hand & String Stamps

Drop 1–4, 0, X finger numbers and circled string indicators ①–⑥ precisely onto notes without layout disruption.

Freehand Pen & Highlighter

Mouse or graphics tablet drawing with variable width, full colour picker, and a semi-transparent highlighter mode.

Comment Pins

Expandable notes pinned to exact score positions. Ideal for teacher feedback or personal practice reminders.

Real-Time Collaboration

Join a shared room with a 6-character code. Annotations sync instantly with iOS, Android, and other desktop clients via Yrs CRDT.

Multi-Size Screen Tracking

Enable "Track Other's Screen" mode to auto-sync pan and zoom. Uses normalized center-screen coordinates so your widescreen Linux monitor smoothly follows an iPad or mobile screen without distortion.


Under the Hood: Rust, egui, and Yrs CRDT

Rusty PIMA's Linux client is built entirely in Rust. The UI renders through egui via eframe, compiled against wgpu (a cross-platform GPU API) and with Wayland support enabled. It works on both Wayland and X11 compositors without configuration.

PDF rendering uses pdfium-render, a safe Rust binding to Google's PDFium library — the same renderer used in Chrome and Android. Pages are rendered at native resolution for crisp results on HiDPI displays.

Collaboration is powered by Yrs (pronounced "wires"), the Rust port of the Y.js CRDT library. Y-CRDTs (Conflict-free Replicated Data Types) are a class of data structures that allow multiple users to edit shared state simultaneously without locking, without a central arbiter, and without ever producing merge conflicts. Two guitarists can place fingering stamps on the same measure at the same millisecond — both edits survive, both are visible to every participant instantly.

The desktop client connects to the Rusty PIMA server over a secure WebSocket (wss://rustypima.com/ws/). Local PDF files are never uploaded to any server — only the annotation diff vectors are transmitted. The PDF itself stays on your machine.

Cross-Platform Screen Tracking Across Displays of Different Sizes

A common challenge when teaching or presenting scores remotely is display disparity — a teacher using a 4:3 iPad Pro and a student on a 16:9 widescreen Linux desktop monitor see completely different physical viewports.

Rusty PIMA handles this with Normalized Viewport Coordinate Tracking. When "Track Other's Screen" is enabled, the client broadcasts normalized relative focal points across WebSockets via the Rust CRDT core. Followers automatically align their viewports to center on the exact measure being highlighted, auto-scaling and scrolling smoothly regardless of aspect ratio or display resolution.

"Local-first: your score opens in milliseconds whether or not you have internet. Collaboration happens on top, not underneath."

Offline-First by Design

Open any PDF from your filesystem and start annotating immediately. Rusty PIMA does not require an account to open or annotate local files. When you're ready to collaborate, generate a room code and share it with your students or ensemble partners — they join from their own device and your annotations appear on their screen in real time.

Disconnect mid-session? Not a problem. Your local changes accumulate and are replayed when you reconnect. The Yrs CRDT state vector ensures that late-arriving operations are merged correctly, preserving the full annotation history.


Frequently Asked Questions

Which Linux distributions are supported?

The .deb package targets Debian 11 (Bullseye)+ and Ubuntu 22.04 LTS+, including derivatives like Linux Mint, Pop!_OS, Kubuntu, and elementary OS. The .rpm package targets Fedora 38+, openSUSE Leap 15.5+, RHEL 9+, AlmaLinux 9+, and Rocky Linux 9+. Both are compiled for x86_64 (amd64).

Does it work on Wayland?

Yes. The client is compiled with Wayland support enabled via egui/eframe's wayland feature flag. It runs natively on Wayland compositors (GNOME 44+, KDE Plasma 5.27+, Sway, Hyprland) and falls back to XWayland transparently on older setups.

How large is the binary?

The installed binary is approximately 25–35 MB depending on linked system libraries. The package bundles pdfium as a static dependency. There are no runtime dependencies beyond libgtk-3 and standard POSIX libs which are already present on any modern Linux desktop.

Will it auto-update?

Yes. The client checks rustypima.com/api/client/version at startup and notifies you in-app when a newer version is available. You can update with a single click from within the app, or re-download and reinstall the package via your package manager.

Ready to annotate your scores on Linux?

Free to download. Works offline. Collaborate when you need to.

Annotate Any PDF Score — On Any Device

Rusty PIMA runs on Linux, macOS, Windows, iPad, iPhone, and Android. Start on your desktop, continue on your tablet, share with your students.

Visit rustypima.com →