A native GTK4/Libadwaita screenshot tool for GNOME desktops, written in Rust.
SuperShot provides a minimal, focused interface for taking screenshots with a configurable delay timer. It delegates capture to the GNOME Screenshot portal, which handles area selection, window capture, and full-screen modes natively. Screenshots are automatically saved and copied to the clipboard.
- Configurable delay -- None, 3, 5, or 10 seconds with a visual countdown displayed inside the capture button.
- Format selection -- Save as PNG (lossless) or JPEG (quality 90).
- Preview and crop -- Optional post-capture preview window with drag-to-select crop region. The watermark is rendered as a live overlay in the preview, showing exactly how the final image will appear.
- Duplicate prevention -- The portal's original file is automatically removed after processing, preventing duplicate screenshots in the system default folder.
- Customizable watermark -- Optional text overlay rendered via Cairo with configurable date format, custom text, corner position, and color.
- 5 date format presets --
YYYY-MM-DD HH:MM:SS,DD/MM/YYYY HH:MM,Mon DD, YYYY HH:MM,YYYY-MM-DD(date only),HH:MM:SS(time only). - Custom text -- Prepend a brand name or label to the date stamp
(e.g.,
MyBrand | 2026-02-16 14:30:25). - 4 corner positions -- Bottom-right, bottom-left, top-right, top-left.
- Color selection -- White text with dark shadow (default) or black text with light shadow, for optimal legibility on any background.
- Custom save directory -- Choose where screenshots are saved via folder
picker. Defaults to
~/Pictures/Screenshots/. - Open screenshots folder -- One-click access to the save directory in the file manager.
- Automatic clipboard copy -- The captured image is copied to the system clipboard immediately after saving.
- Desktop notifications -- Posts a GNOME notification with the file path after each successful capture. Clicking the notification opens the screenshot in the default image viewer.
- Tabbed interface -- Clean two-tab layout: Shot (capture controls) and Settings (watermark, format, output configuration).
- Settings persistence -- All preferences stored via GSettings and restored on launch.
- CLI headless mode -- Capture screenshots from the command line without displaying the GUI, suitable for scripting and automation.
- 14 languages -- Translations via GNU gettext for the most widely spoken languages.
| Dependency | Minimum version |
|---|---|
| GTK 4 | 4.14 |
| Libadwaita | 1.5 |
| xdg-desktop-portal-gnome | -- |
| glib-compile-schemas | -- |
| Tool | Version |
|---|---|
| Rust toolchain | 1.70+ (edition 2021) |
| pkg-config | -- |
| GTK 4 development headers | libgtk-4-dev |
| Libadwaita development headers | libadwaita-1-dev |
On Ubuntu/Debian:
sudo apt install libgtk-4-dev libadwaita-1-dev pkg-configgit clone https://github.com/axpnet/supershot.git
cd supershot/SuperShot
cargo build --releaseThe release binary is produced at target/release/supershot.
During development builds, the build.rs script automatically installs the
GSettings XML schema into ~/.local/share/glib-2.0/schemas/ and compiles it,
so cargo run works without a system-wide installation step.
sudo snap install supershotDownload the latest .deb from the
Releases page:
sudo dpkg -i supershot_1.1.0_amd64.debThe package installs the binary to /usr/bin/supershot, the GSettings schema,
the .desktop launcher, the AppStream metadata, and the application icon.
Post-installation scripts compile the GSettings schema and update the icon
cache automatically.
sudo install -Dm755 target/release/supershot /usr/bin/supershot
sudo install -Dm644 data/com.github.axpnet.SuperShot.desktop /usr/share/applications/
sudo install -Dm644 data/com.github.axpnet.SuperShot.gschema.xml /usr/share/glib-2.0/schemas/
sudo install -Dm644 data/com.github.axpnet.SuperShot.metainfo.xml /usr/share/metainfo/
sudo install -Dm644 data/icons/hicolor/scalable/apps/com.github.axpnet.SuperShot.svg /usr/share/icons/hicolor/scalable/apps/
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/supershotOpens the main application window with two tabs:
- Shot -- Configure delay and preview toggle, then press the circular capture button. The GNOME Screenshot portal opens, allowing you to select an area, window, or full screen.
- Settings -- Configure watermark (enable, date format, custom text, position, color), output format (PNG/JPEG), and save directory.
supershot --now --delay 5Opens the portal screenshot UI after a 5-second delay without displaying the SuperShot window.
| Flag | Description | Default |
|---|---|---|
--delay |
Seconds before capture | 0 |
--now |
Headless mode (no GUI) | false |
SuperShot ships with 14 language translations via GNU gettext. The interface defaults to English; translations are activated automatically when the system locale matches a supported language.
| Language | Code | Status |
|---|---|---|
| English | en |
Source language |
| Italian | it |
Complete |
| French | fr |
Complete |
| German | de |
Complete |
| Spanish | es |
Complete |
| Portuguese | pt |
Complete |
| Russian | ru |
Complete |
| Polish | pl |
Complete |
| Turkish | tr |
Complete |
| Japanese | ja |
Complete |
| Korean | ko |
Complete |
| Chinese (Simplified) | zh_CN |
Complete |
| Chinese (Traditional) | zh_TW |
Complete |
| Hindi | hi |
Complete |
| Indonesian | id |
Complete |
New translations are welcome. See docs/CONTRIBUTING.md for the translation workflow.
SuperShot is structured as a standard GLib/GTK4 application using the object-subclassing pattern with inline composite templates:
src/
main.rs Entry point, CLI argument parsing (clap), dispatch
app.rs AdwApplication subclass, lifecycle and action management
config.rs Application constants (APP_ID, gettext domain)
i18n.rs GNU gettext initialization
window.rs Main window with tabbed UI (AdwViewStack), GSettings bindings
capture.rs Capture pipeline: countdown, portal, watermark, crop, save, clipboard, notify
preview.rs Preview/crop window with Cairo rendering and live watermark overlay
sound.rs Shutter sound playback via canberra-gtk-play
Screenshot capture is performed through the XDG Desktop Portal (ashpd crate),
which communicates with the compositor via D-Bus. The portal's interactive UI
handles area, window, and full-screen selection natively. Post-capture
processing (watermark, crop, format conversion) uses Cairo and GdkPixbuf.
Contributions are welcome. Please open an issue to discuss proposed changes before submitting a pull request. See docs/CONTRIBUTING.md for the development workflow and translation guide.
If you find SuperShot useful, consider supporting its development:
- GitHub Sponsors: github.com/sponsors/axpnet
- Buy Me a Coffee: buymeacoffee.com/axpnet
This project is licensed under the GNU General Public License v3.0 or later. See the LICENSE file for details.
axpnet -- github.com/axpnet
Repository: https://github.com/axpnet/supershot