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.DecoderScan 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.