Modern, lightweight screen capture, live annotation, EWMH window snapping, integrated audio/video recording, and high-capacity cloud sharing.
Yes, yes, this is yet another fork of a fork.
I use Flameshot on a daily basis, but was frustrated by its limitations: missing window snapping, lack of native modern WebP output, and zero video/audio recording capability. So I took the codebase starting from commit 70be63d478a271da549597d69bd4868607c0a395 (v12.1.0 release), extended it with the missing features, optimized the build, and had a lot of fun doing it.
If you like it, you can build it, use it, and enjoy a faster, fully featured tool. If you find this project useful, feel free to star the repository and share feedback!
Dedicated recording control bar with real-time hardware multi-segment audio VU-meter, live drawing suite (pencil, arrow, line, rectangle, circle, marker, text, step counter, pixelate blur, invert), audio source switcher, resolution indicator, and instant record/stop controls.
Interactive post-recording dialog featuring sub-second instant video trimming (lossless stream-copy without re-encoding), custom block-segmented boundary slider, built-in player launcher, and direct cloud upload up to 1 GB (Catbox / Litterbox).
- Integrated Video & Audio Recording: Record any selected screen area or snapped window directly into high-quality MP4 (
x264+AAC) with perfect A/V synchronization (aresample=async=1000). Videos are saved automatically to~/Video/flameshot-plus/. - Live On-Screen Drawing During Recording: Draw and annotate directly over the video stream while recording. Full toolset includes freehand pencil, arrows, straight lines, rectangles (outline & fill), circles, semi-transparent highlighter, direct text typing, auto-increment step counter badges (1, 2, 3...), dynamic pixelation/blur, color inversion, undo/redo (
Ctrl+Z/Ctrl+Shift+Z), and instant canvas wipe (C). - Hardware-Accurate Audio VU-Meter: Multi-segment real-time VU-meter on the floating HUD providing visual volume level feedback for microphone and system audio.
- Sub-Second Lossless Stream Trimming: Trim video boundaries in under 0.2s using ffmpeg stream-copy (
-c copy) without CPU-heavy re-encoding or quality degradation. Includes an intuitive block-segmented timeline slider. - High-Capacity Cloud Sharing (up to 1 GB): Dual-tier cloud uploading with automatic routing: standard Catbox cloud for files up to 200 MB, and high-capacity Litterbox cloud for large recordings up to 1 GB. Features live transfer progress (MB sent / total MB / percentage) and instant clipboard link copying.
- In-App Multi-Language Switcher (35 Languages): Built-in language selector in General Configuration supporting English, Russian, Ukrainian, German, French, Spanish, Italian, Polish, Chinese, Japanese, and 25+ more locales with complete translation coverage.
- EWMH Hardware-Accurate Window Snapping: Window snapping via
_NET_CLIENT_LIST_STACKINGthat detects genuine application windows with window manager frames, automatically ignoring Flameshot's own capture overlay. - Enhanced Uploads History: Robust "Latest Uploads" dialog supporting both screenshots and video recordings with direct URL copying, browser launching, and safe item deletion.
- Persistent Area Coordinates: Selection geometry is automatically saved to
/tmp/screenink_area.envand/tmp/screenink_area.txtfor scripting and external tools. - Default WebP Format: Ultra-lightweight screenshots saved directly in modern WebP format by default.
- Build Optimization: Compiled with
-O3,-flto=auto(Link-Time Optimization), and linker dead-code elimination (-Wl,--gc-sections). Resulting stripped binary is ~1.7 MB.
All modifications are backed by automated tests integrated into GitHub Actions CI/CD to ensure stability and proper packaging.
- Integrated Tool Shortcuts: Properly registered all new tool identifiers (
TYPE_RECORD) in Flameshot's shortcut table to ensure compatibility with the internal configuration validator (config --check). - Anonymous Uploading: Replaced deprecated Imgur integration with anonymous uploads to
0x0.stand automatic fallback toCatbox.moe. - Debian Packaging: Built according to Debian packaging standards with
Provides: flameshot,Conflicts: flameshot, andReplaces: flameshotfor seamless package replacement. Includes/usr/share/doc/flameshot-plus/copyrightandpostinst/postrmdesktop/icon cache hooks. - Build Hardening: Compiled with
-flto=auto, linker garbage collection, and non-executable stack verification (GNU_STACK).
Every commit and release artifact undergoes exhaustive automated verification across multiple CI stages before publication:
- Static Code Analysis (
cppcheck):- Independent pre-build CI gate running with
--enable=warning,performance,portability --error-exitcode=1. - Mathematically verifies code against null-pointer dereferences, resource leaks, dead stores, and undefined behavior before compilation begins.
- Independent pre-build CI gate running with
- Virtual Display GUI Lifecycle & Event Loop (
Xvfb+xdotool):- Headless automated GUI test running under a real virtual X11 server (
1920x1080x24). - Spawns the graphical overlay, initializes the Qt event loop, dispatches synthetic keyboard events (
Escape), and confirms clean session termination and memory deallocation with exit code 0.
- Headless automated GUI test running under a real virtual X11 server (
- Concurrency & SingleApplication Mutex Safety:
- Multi-process race-condition testing verifying that concurrent invocations gracefully lock, transfer focus, and prevent configuration/file corruption.
- Fault Injection & Malformed Geometry Protection:
- Injects degenerate and invalid capture regions (e.g.,
0x0+0+0, out-of-bounds offsets) to verify that exception handlers reject invalid inputs without segmentation faults.
- Injects degenerate and invalid capture regions (e.g.,
- Configuration & Shortcut Semantic Integrity:
- Executes automated
config --checkverifying zero unrecognized keys, zero semantic errors, and full shortcut hash table integrity.
- Executes automated
- ELF Binary Security & Hardening:
- Inspects ELF headers to enforce non-executable stack permissions (
GNU_STACKRW, no X). - Enforces strict size budget (< 3.0 MB) after LTO and
sstripsection pruning.
- Inspects ELF headers to enforce non-executable stack permissions (
- CLI Interface Contract:
- Validates command-line flags, rebrand integrity, and exit status contracts.
- Storage & Recording Pipeline:
- Verifies runtime paths (
~/Video/flameshot-plus/) and environment coordinate contracts (/tmp/screenink_area.env).
- Verifies runtime paths (
- Screen Capture & WebP Encoding Pipeline:
- Validates native headless WebP generation, compression validity, and image header integrity.
- Debian Package Policy Compliance:
- Deep structural audit of the
.debpackage (dpkg -I,dpkg -c), checking package replacement directives (Provides/Conflicts/Replaces: flameshot), embedded GPLv3 copyright documentation, andpostinst/postrmcache hooks.
- Deep structural audit of the
Pre-built packages are automatically built on Debian 12 via GitHub Actions:
- Download
flameshot-plus_12.1.0-1_amd64.debfrom Release v12.1.0-plus. - Install via apt:
wget https://github.com/Svarkovsky/flameshot-plus/releases/download/v12.1.0-plus/flameshot-plus_12.1.0-1_amd64.deb
sudo apt install ./flameshot-plus_12.1.0-1_amd64.debOr download the standalone binary:
wget https://github.com/Svarkovsky/flameshot-plus/releases/download/v12.1.0-plus/flameshot-plus
chmod +x ./flameshot-plus
./flameshot-plus guisudo apt-get install build-essential cmake qtbase5-dev libqt5svg5-dev qttools5-dev-tools libx11-dev ffmpegcmake -B build -S . \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_IPO=ON
cmake --build build -j$(nproc)./build/src/flameshot guiWorTab: Snap selection to window under cursor (EWMH)- Double Click: Snap selection to clicked window
EscorQ: Stop active recording / close overlaySpaceorEnter: Start recording when in ready modeC: Clear all live drawings from recording canvasCtrl + Z: Undo last drawing actionCtrl + Shift + Z: Redo last drawing action
All original rights, intellectual property, and authorship belong entirely to the original authors and contributors of Flameshot at https://github.com/flameshot-org/flameshot.
This repository is an independent personal fork created solely for personal convenience. All upstream questions, feature requests, and bug reports regarding the base Flameshot application should be directed to the official project at https://github.com/flameshot-org/flameshot.
The author of this fork accepts absolutely NO responsibility, liability, or warranty of any kind. I am not responsible for anything; use this software strictly at your own risk.
- Author & Maintainer: Ivan Svarkovsky (@Svarkovsky)
- Repository: https://github.com/Svarkovsky/flameshot-plus


