Decoder

A QR code scanner and generator for GNOME written in Rust, supporting camera scanning, screenshot scanning, and generation of codes for URLs, text, and more.

Decoder is a QR code scanner and generator for the GNOME desktop, written in Rust and built with GTK4 and libadwaita. It handles both directions of the QR workflow — scanning codes from a connected camera or a screenshot, and generating new codes for any text, URL, or structured data. Decoder is part of the broader GNOME ecosystem maintained by Bilal Elmoussaoui, one of the most active contributors to GNOME's Rust-based application stack.

Features

  • Camera scanning — Scan QR codes in real time using any connected webcam or built-in camera.
  • Screenshot scanning — Capture a region of your screen to decode a QR code without a physical device.
  • QR code generation — Generate codes for plain text, URLs, email addresses, phone numbers, Wi-Fi credentials, and more.
  • Intelligent content parsing — Recognised content types are presented with contextual actions: URLs open in the browser, contacts are offered for import, Wi-Fi networks can be joined directly.
  • Scan history — Previously scanned codes are saved so you can revisit and copy their contents later.
  • GTK4 / libadwaita — Follows the GNOME HIG, respects your system accent colour and dark/light preference, and adapts to mobile form factors.

Installation

The recommended install method is Flatpak from Flathub, which works on any Linux distribution with Flatpak support.

# Flatpak (all distributions)
flatpak install flathub com.belmoussaoui.Decoder

Decoder is also available through Nix:

# Nix
nix-env -iA nixpkgs.gnome-decoder

If your distribution packages it natively, search for decoder or gnome-decoder in your package manager.

Usage

Scanning a QR code with a camera

Launch Decoder and select the Scan tab. Point your camera at a QR code — Decoder will detect and decode it automatically. The decoded content appears immediately, and Decoder offers relevant actions based on the content type (open URL, copy text, add contact, etc.).

Scanning from a screenshot

Click the screenshot icon in the toolbar. A region-selection overlay appears; draw a rectangle around the QR code on your screen. Decoder decodes the selection without requiring a camera.

Generating a QR code

Switch to the Generate tab, choose a content type from the dropdown (Text, URL, Email, Phone, Wi-Fi, etc.), fill in the fields, and the QR code renders live. You can copy the image to the clipboard or save it as a PNG.

# Run the Flatpak directly from the terminal
flatpak run com.belmoussaoui.Decoder

Scan History

Every successfully decoded code is added to Decoder's history panel. Entries show a thumbnail of the code alongside its decoded value and the time it was scanned. You can copy the raw value, open it with the appropriate application, or delete individual entries.

Decoder vs. GNOME Snapshot / Phone camera

Decoder is purpose-built for the desktop QR workflow. Unlike using a phone camera, it integrates directly into your GNOME session — decoded URLs open in your default browser, Wi-Fi credentials are passed to NetworkManager, and contact data is offered to GNOME Contacts. No phone pairing required. For users who frequently deal with QR codes in documentation, development, or networking tasks, Decoder is the fastest path from code to action on a Linux desktop.