Rnote

A vector-based drawing and handwriting app for GNOME, with pressure-sensitive stylus input, infinite canvas, PDF annotation, and Xournal++ import.

Rnote is a vector-based drawing and note-taking application built with GTK4 and Rust, designed primarily for stylus input on GNOME desktops. It targets students, researchers, and digital artists who want a native Linux experience for handwritten notes and annotated PDFs. The project has grown to over 11k GitHub stars and is actively maintained, making it one of the most polished Rust-native GUI applications available.

Features

  • Pressure-sensitive stylus input — configurable stroke styles respond to pen pressure for natural handwriting
  • Flexible document layouts — choose between fixed pages, continuous vertical scroll, or a truly infinite canvas
  • Rich import support — import PDF, bitmap images, and SVG files into any document
  • Versatile export — export documents to SVG, PDF, PNG, JPEG, and the Xournal++ .xopp format
  • Native .rnote format — documents are stored as gzipped JSON, keeping files small and inspectable
  • Multi-document tabs — work on several documents at once in a tabbed interface
  • Autosave and printing — never lose work; print directly from the app
  • Drag & drop and clipboard — paste images and files directly onto the canvas
  • Customizable backgrounds — choose colors, grid/dotted/ruled patterns, and page sizes
  • Integrated workspace browser — browse and open recent files without leaving the app
  • Optional pen sounds — audible feedback when drawing strokes

Installation

Flatpak from Flathub is the recommended install method on Linux, as Rnote is a Meson/Cargo hybrid desktop application and is not published as a standalone crate on crates.io.

# All Linux distributions (Flatpak)
flatpak install flathub com.github.flxzt.rnote
# macOS (Homebrew)
brew install --cask rnote
# Windows (winget)
winget install flxzt.rnote
# Arch Linux (AUR)
yay -S rnote
# Nix
nix-env -iA nixpkgs.rnote

For Debian/Ubuntu and Fedora, the Flatpak above is the easiest path. If you prefer a native package, pre-built binaries for each release are available on the releases page.

To build from source, you need Rust (via rustup) and Meson:

git clone https://github.com/flxzt/rnote.git
cd rnote
meson setup _build --prefix=/usr
ninja -C _build
sudo ninja -C _build install

Usage

Rnote is a graphical application — launch it from your application menu or run:

# Launch via Flatpak
flatpak run com.github.flxzt.rnote

# Launch native install
rnote

Opening and annotating a PDF

  1. Open Rnote and create a new document (File → New).
  2. Drag a PDF file onto the canvas, or use File → Import to place it.
  3. Select a pen tool from the toolbar and annotate directly over the PDF pages.
  4. Export the annotated result via File → Export → PDF.

Exporting to Xournal++ format

# From within the app: File → Export → Xournal++ (.xopp)
# The resulting file can be opened in Xournal++ on any platform.

Keyboard shortcuts

ActionShortcut
New documentCtrl+N
Open documentCtrl+O
SaveCtrl+S
ExportCtrl+Shift+E
UndoCtrl+Z
RedoCtrl+Shift+Z
Toggle sidebarF9
Full screenF11

Rnote vs Xournal++

FeatureRnoteXournal++
Written inRust + GTK4C++ + GTK3
Native Wayland
Infinite canvas
Vector strokes
.xopp import✅ (native)
PDF annotation
Flatpak
Active development

Rnote stores strokes as vectors, meaning they scale without quality loss and the file format remains compact. Xournal++ is the more established tool with a larger plugin ecosystem, but Rnote is the better choice for users who prefer a modern GTK4 interface and native Wayland support.