Convert Figma logo to code with AI

flameshot-org logoflameshot

Powerful yet simple to use screenshot software :desktop_computer: :camera_flash:

25,214
1,609
25,214
756

Top Related Projects

2,467

ksnip the cross-platform screenshot and annotation tool

30,110

ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.

Greenshot for Windows - Report bugs & features go here: https://greenshot.atlassian.net or look for information on:

Quick Overview

Flameshot is a powerful, open-source screenshot tool for Linux, Windows, and macOS. It offers a feature-rich interface for capturing, annotating, and sharing screenshots with ease. Flameshot provides a versatile set of tools for editing and enhancing captured images directly within the application.

Pros

  • Intuitive and user-friendly interface with a wide range of annotation tools
  • Cross-platform support for Linux, Windows, and macOS
  • Highly customizable, allowing users to configure shortcuts, save locations, and more
  • Active development and community support

Cons

  • May have occasional stability issues on some systems
  • Limited video capture capabilities compared to some competitors
  • Learning curve for advanced features and customizations
  • Some users report inconsistent behavior across different operating systems

Getting Started

To install Flameshot on Ubuntu or Debian-based systems:

sudo apt install flameshot

For macOS users with Homebrew:

brew install flameshot

For Windows users, download the installer from the official GitHub releases page.

To launch Flameshot:

  1. Open your system's application menu
  2. Search for "Flameshot" and click to run
  3. Use the default shortcut (PrtScr) or configure a custom one to start capturing

For command-line usage:

flameshot gui # Launch GUI mode
flameshot full # Capture full screen
flameshot screen # Capture current screen

Refer to the official documentation for more detailed instructions and advanced configurations.

Competitor Comparisons

2,467

ksnip the cross-platform screenshot and annotation tool

Pros of ksnip

  • More extensive image editing features, including text annotations and image effects
  • Cross-platform support for Windows, macOS, and Linux
  • Customizable user interface with themes and language options

Cons of ksnip

  • Larger application size and potentially higher resource usage
  • Less frequent updates and slower development cycle
  • Steeper learning curve due to more complex interface and features

Code Comparison

ksnip (C++):

void KsnipConfig::setCaptureCursor(bool captureCursor)
{
    if (mConfig.captureCursor == captureCursor) {
        return;
    }
    mConfig.captureCursor = captureCursor;
    saveSettings();
}

Flameshot (C++):

void Configuration::setContrastUiColor(const QColor &c) {
    if (m_contrastUiColor == c) {
        return;
    }
    m_contrastUiColor = c;
    emit contrastUiColorChanged(c);
}

Both projects use C++ and Qt framework, with similar coding styles. ksnip's configuration handling appears more complex, while Flameshot's code shows a signal emission for UI updates.

30,110

ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.

Pros of ShareX

  • More comprehensive feature set, including screen recording, file sharing, and productivity tools
  • Extensive customization options and plugins
  • Better integration with Windows and various online services

Cons of ShareX

  • Windows-only, limiting cross-platform usage
  • Steeper learning curve due to its extensive features
  • Larger application size and potentially higher resource usage

Code Comparison

While both projects are primarily focused on GUI functionality, here's a brief comparison of how they handle configuration:

Flameshot (C++):

void ConfigHandler::setAllTheButtons() {
    QVector<int> buttons;
    auto buttonsEnum = CaptureButton::iterableButtonTypes();
    for (const CaptureButton::ButtonType &t: buttonsEnum) {
        buttons << static_cast<int>(t);
    }
    setValue(QStringLiteral("buttons"), QVariant::fromValue(buttons));
}

ShareX (C#):

public static void LoadSettings()
{
    Settings = new SettingsBase();
    Settings.LoadFromFileOrBackup(SettingsFilePath);
    UploadersConfig = new UploadersConfig(UploadersConfigPath);
    HotkeysConfig = new HotkeysConfig(HotkeysConfigPath);
}

Both projects use configuration handlers, but ShareX's approach appears more modular with separate config files for different functionalities.

Greenshot for Windows - Report bugs & features go here: https://greenshot.atlassian.net or look for information on:

Pros of Greenshot

  • More mature project with longer development history
  • Extensive plugin system for additional functionality
  • Built-in image editor with advanced features

Cons of Greenshot

  • Windows-only, limiting cross-platform usage
  • Less frequent updates compared to Flameshot
  • User interface may feel dated to some users

Code Comparison

Greenshot (C#):

public static Image CaptureScreenshot(Rectangle bounds, bool captureMouse) {
    Image image = new Bitmap(bounds.Width, bounds.Height);
    using (Graphics g = Graphics.FromImage(image)) {
        g.CopyFromScreen(bounds.Location, Point.Empty, bounds.Size);
    }
    return image;
}

Flameshot (C++):

void CaptureWidget::paintEvent(QPaintEvent *) {
    QPainter painter(this);
    painter.drawPixmap(0, 0, m_screenshot);
    drawButtons(&painter);
    drawSelection(&painter);
}

Both projects use different programming languages and approaches to capture and display screenshots. Greenshot utilizes C# and the .NET framework, while Flameshot is built with C++ and Qt. The code snippets show basic functionality for capturing and rendering screenshots, with Flameshot's example focusing more on the UI painting process.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Flameshot
Flameshot

Powerful yet simple to use screenshot software.

GNU/Linux Build Status Windows Build Status MacOS Build Status Nightly Build Latest Stable Release Total Downloads License Translation status Docs
Get it from the Snap Store Download on Flathub

Preview

image

Index

Features

  • Customizable appearance.
  • Easy to use.
  • In-app screenshot editing.
  • DBus interface.
  • Upload to Imgur.

Usage

Executing the command flameshot without parameters will launch a running instance of the program in the background without taking actions. If your desktop environment provides tray area, a tray icon will also appear in the tray for users to perform configuration and management.

Example commands:

  • Capture with GUI:

    flameshot gui
    
  • Capture with GUI with custom save path:

    flameshot gui -p ~/myStuff/captures
    
  • Capture with GUI after 2 seconds delay (can be useful to take screenshots of mouse hover tooltips, etc.):

    flameshot gui -d 2000
    
  • Fullscreen capture with custom save path (no GUI) and delayed:

    flameshot full -p ~/myStuff/captures -d 5000
    
  • Fullscreen capture with custom save path copying to clipboard:

    flameshot full -c -p ~/myStuff/captures
    
  • Capture the screen containing the mouse and print the image (bytes) in PNG format:

    flameshot screen -r
    
  • Capture the screen number 1 and copy it to the clipboard:

    flameshot screen -n 1 -c
    

In case of doubt choose the first or the second command as shortcut in your favorite desktop environment.

A systray icon will be in your system's panel while Flameshot is running. Do a right click on the tray icon and you'll see some menu items to open the configuration window and the information window. Check out the About window to see all available shortcuts in the graphical capture mode.

CLI configuration

You can use the graphical menu to configure Flameshot, but alternatively you can use your terminal or scripts to do so.

  • Open the configuration menu:

    flameshot config
    
  • Show the initial help message in the capture mode:

    flameshot config --showhelp true
    
  • For more information about the available options use the help flag:

    flameshot config -h
    

Config file

You can also edit some of the settings (like overriding the default colors) in the configuration file.
Linux path: ~/.config/flameshot/flameshot.ini.
Windows path: C:\Users\{YOURNAME}\AppData\Roaming\flameshot\flameshot.ini.

When copying over the config file from Linux to Windows or vice versa, make sure to correct the savePath variable,
so that the screenshots save in the right directory on your desired file system.

Keyboard shortcuts

Local

These shortcuts are available in GUI mode:

KeysDescription
PSet the Pencil as paint tool
DSet the Line as paint tool
ASet the Arrow as paint tool
SSet Selection as paint tool
RSet the Rectangle as paint tool
CSet the Circle as paint tool
MSet the Marker as paint tool
TAdd text to your capture
BSet Pixelate as the paint tool
←, ↓, ↑, →Move selection 1px
Shift + ←, ↓, ↑, →Resize selection 1px
Ctrl + Shift + ←, ↓, ↑, →Symmetrically resize selection 2px
EscQuit capture
Ctrl + MMove the selection area
Ctrl + CCopy to clipboard
Ctrl + SSave selection as a file
Ctrl + ZUndo the last modification
Ctrl + Shift + ZRedo the next modification
Ctrl + QLeave the capture screen
Ctrl + OChoose an app to open the capture
Ctrl + ReturnCommit text in text area
ReturnUpload the selection to Imgur
SpacebarToggle visibility of sidebar with options of the selected tool, color picker for the drawing color and history menu
Right ClickShow the color wheel
Mouse WheelChange the tool's thickness
Print screenCapture Screen
Shift + PrintScreenshot History
Ctrl + drawing line, arrow or markerDrawing only horizontally, vertically or diagonally
Ctrl + drawing rectangle or circleKeeping aspect ratio

Shift + drag a handler of the selection area: mirror redimension in the opposite handler.

Global

Flameshot uses Print screen (Windows) and cmd-shift-x (macOS) as default global hotkeys.

On Linux, Flameshot doesn't yet support Prt Sc out of the box, but with a bit of configuration you can set this up:

On KDE Plasma desktop

To make configuration easier, there's a file in the repository that more or less automates this process. This file will assign the following hotkeys by default:

KeysDescription
Prt ScStart the Flameshot screenshot tool and take a screenshot
Ctrl + Prt ScWait for 3 seconds, then start the Flameshot screenshot tool and take a screenshot
Shift + Prt ScTake a full-screen (all monitors) screenshot and save it
Ctrl + Shift + Prt ScTake a full-screen (all monitors) screenshot and copy it to the clipboard

If you don't like the defaults, they can be changed later.

Steps for using the configuration:

  1. The configuration file makes Flameshot automatically save screenshots to ~/Pictures/Screenshots without opening the save dialog. Make sure that folder exists by running:

    mkdir -p ~/Pictures/Screenshots
    

    (If you don't like the default location, you can skip this step and configure your preferred directory later.)

  2. Download the configuration file:

    cd ~/Desktop
    wget https://raw.githubusercontent.com/flameshot-org/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde.khotkeys
    
  3. Make sure you have the khotkeys installed using your package manager to enable custom shortcuts in KDE Plasma.

  4. Go to System Settings → Shortcuts → Custom Shortcuts.

  5. If an entry exists for Spectacle (the default KDE screenshot utility), you'll need to disable it because its shortcuts might conflict with Flameshot's. Do this by unchecking the Spectacle entry.

  6. Click Edit → Import..., navigate to the configuration file and open it.

  7. Now the Flameshot entry should appear in the list. Click Apply to apply the changes.

  8. If you want to change the default hotkeys, you can expand the entry, select the appropriate action and modify it as you wish; the process is pretty self-explanatory.

  9. If you installed Flameshot as a Flatpak, you will need to create a symlink to the command:

    ln -s /var/lib/flatpak/exports/bin/org.flameshot.Flameshot ~/.local/bin/flameshot
    

On Ubuntu (Tested on 18.04, 20.04, 22.04)

To use Flameshot instead of the default screenshot application in Ubuntu we need to remove the binding on Prt Sc key, and then create a new binding for /usr/bin/flameshot gui (adapted from Pavel's answer on AskUbuntu).

  1. Remove the binding on Prt Sc:

    Ubuntu 18.04/20.04 using the following command:

    gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot '[]'
    

    Ubuntu 22.04: Go to Settings > Keyboard > View and Customise Shortcuts > Screenshots > Take a screenshot interactively and press backspace

  2. Add custom binding on Prt Sc:

    Ubuntu 18.04: Go to Settings > Device > Keyboard and press the '+' button at the bottom.

    Ubuntu 20.04: Go to Settings > Keyboard Shortcuts and press the '+' button at the bottom.

    Ubuntu 22.04: Go to Settings > Keyboard > View and Customise Shortcuts > Custom shortcuts and press the '+' button at the bottom.

  3. Name the command as you like it, e.g. flameshot. And in the command insert /usr/bin/flameshot gui.

  4. Then click "Set Shortcut.." and press Prt Sc. This will show as "print".

Now every time you press Prt Sc, it will start the Flameshot GUI instead of the default application.

On XFCE 4

  1. Go to Keyboard settings

  2. Switch to the tab Application Shortcuts

  3. Find the entry

    Command                        Shortcut
    xfce4-screenshooter -fd 1      Print
    
  4. Replace xfce4-screenshooter -fd 1 with flameshot gui

Now every time you press Prt Sc it will start Flameshot GUI instead of the default application.

Considerations

  • Experimental Gnome Wayland and Plasma Wayland support.

  • If you are using Gnome you need to install the AppIndicator and KStatusNotifierItem Support extension in order to see the system tray icon.

  • Press Enter or Ctrl + C when you are in a capture mode and you don't have an active selection and the whole desktop will be copied to your clipboard. Pressing Ctrl + S will save your capture to a file. Check the Shortcuts for more information.

  • Flameshot works best with a desktop environment that includes D-Bus. See this article for tips on using Flameshot in a minimal window manager (dwm, i3, xmonad, etc).

  • In order to speed up the first launch of Flameshot (D-Bus init of the app can be slow), consider starting the application automatically on boot.

    • Quick tip: If you don't have Flameshot to autostart at boot and you want to set keyboard shortcut, use the following as the command for the keybinding:
    ( flameshot &; ) && ( sleep 0.5s && flameshot gui )
    

Installation

Flameshot can be installed on Linux, Microsoft Windows, and macOS.

Prebuilt packages

Some prebuilt packages are provided on the release page of the GitHub project repository.

Packages from Repository

There are packages available in the repository of some Linux distributions:

macOS

  • MacPorts: sudo port selfupdate && sudo port install flameshot
  • Homebrew: brew install --cask flameshot

Note that because of macOS security features, you may not be able to open flameshot when installed using brew. If you see the message “flameshot” cannot be opened because the developer cannot be verified. you will need to follow the steps below:

  1. Go to the Applications folder (Finder > Go > Applications, or Shift+Command+A)
  2. Right-Click on "flameshot.app" and choose "Open" from the context menu
  3. In the dialog click "Open"

After following all those steps above, flameshot will open without problems in your Mac.

Windows

Expand this section to see what distros are using an up to date version of flameshot Packaging status

Tray icon

Note that for the Flameshot icon to appear in your tray area, you should have a systray software installed. This is especially true for users who use minimal window managers such as dwm. In some Desktop Environment installations (e.g Gnome), the systray might be missing and you can install an application or plugin (e.g Gnome shell extension) to add the systray to your setup. It has been reported) that icon of some software, including Flameshot, does not show in gnome-shell-extension-appindicator.

Alternatively, in case you don't want to have a systray, you can always call Flameshot from the terminal. See Usage section.

Compilation

To build the application in your system, you'll need to install the dependencies needed for it and package names might be different for each distribution, see Dependencies below for more information. You can also install most of the Qt dependencies via their installer. If you were developing Qt apps before, you probably already have them.

This project uses CMake build system, so you need to install it in order to build the project (on most Linux distributions it is available in the standard repositories as a package called cmake). If your distribution provides too old version of CMake (e.g. Ubuntu 18.04) you can download it on the official website.

Also you can open and build/debug the project in a C++ IDE. For example, in Qt Creator you should be able to simply open CMakeLists.txt via Open File or Project in the menu after installing CMake into your system. More information about CMake projects in Qt Creator.

Dependencies

Compile-time

  • Qt >= 5.9
    • Development tools
  • GCC >= 7.4
  • CMake >= 3.13

Run-time

  • Qt
    • SVG

Optional

  • Git
  • OpenSSL
  • CA Certificates

Debian

# Compile-time
apt install g++ cmake build-essential qtbase5-dev qttools5-dev-tools libqt5svg5-dev qttools5-dev

# Run-time
apt install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5

# Optional
apt install git openssl ca-certificates

Fedora

# Compile-time
dnf install gcc-c++ cmake qt5-qtbase-devel qt5-linguist

# Run-time
dnf install qt5-qtbase qt5-qtsvg-devel

# Optional
dnf install git openssl ca-certificates

Arch

# Compile-time
pacman -S cmake base-devel git qt5-base qt5-tools

# Run-time
pacman -S qt5-svg

# Optional
pacman -S openssl ca-certificates

NixOS

nix-shell

macOS

First of all you need to install brew and than install the dependencies

brew install qt5
brew install cmake

Build

After installing all the dependencies, finally run the following commands in the sources root directory:

cmake -S . -B build && cmake --build build

NOTE: For macOS you should replace the command

cmake -S . -B build

with

cmake -S . -B build -DQt5_DIR=$(brew --prefix qt5)/lib/cmake/Qt5

When the cmake --build build command has completed you can launch flameshot from the project_folder/build/src folder.

Install

Note that if you install from source, there is no uninstaller, so consider installing to a custom directory.

To install into a custom directory

# Best to use an absolute path here
INST_DIR=/opt/flameshot
# You may need to run this with privileges
cmake --install build --prefix "$INST_DIR"

To install to the default install directory

# You may need to run this with privileges
cmake --install build

FAQ

https://flameshot.org/docs/guide/faq/

License

Info: If I take code from your project and that implies a relicense to GPLv3, you can reuse my changes with the original previous license of your project applied.

Privacy Policy

This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.

Code Signing Policy

For Windows binaries, this program uses free code signing provided by SignPath.io, and a certificate by the SignPath Foundation.

Code signing is currently a manual process so not every patch release will be signed.

Contribute

If you want to contribute check the CONTRIBUTING.md

Acknowledgment

Thanks to those who have shown interest in the early development process:

Thanks to sponsors: