33KK / flameshot

Powerful yet simple to use screenshot software, with custom command uploader
https://aur.archlinux.org/packages/flameshot-33kk-git/
GNU General Public License v3.0
9 stars 2 forks source link
hacktoberfest

Flameshot
Flameshot

Powerful yet simple to use screenshot software.

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

Preview

image

Index

Features

Usage

Executing the command flameshot without parameters will launch a running instance of the program in 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:

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.

Config file

You can also edit some of the settings (like overriding the default colors) in the configuration file located at ~/.config/flameshot/flameshot.ini.

Upload Using Command

You can upload to any image hosting service using a command, which can be set in "General" settings. Flameshot will write PNG image data to standard input (STDIN) and the command should output JSON with following format:

{
  "description": "i.example.com",
  "imageUrl": "https://i.example.com/filename.png",
  "deleteUrl": "https://i.example.com/delete/filename.png?token=123"
}

description and deleteUrl are optional.

Example for i.nuuls.com:

curl -X POST -F "file=@-;type=image/png" "https://i.nuuls.com/upload"

Example for sxcu.net:

sh -c "curl --silent -X POST -F 'image=@-;type=image/png;filename=s.png' -F noembed=true 'https://sxcu.net/upload' | jq '{description: ("""sxcu.net: """ +  .url[17:-4]), imageUrl: .url, deleteUrl: .del_url}'"

Keyboard shortcuts

Local

These shortcuts are available in GUI mode:

Keys Description
P Set the Pencil as paint tool
D Set the Line as paint tool
A Set the Arrow as paint tool
S Set Selection as paint tool
R Set the Rectangle as paint tool
C Set the Circle as paint tool
M Set the Marker as paint tool
T Add text to your capture
B Set Pixalate as the paint tool
, , , Move selection 1px
Shift + , , , Resize selection 1px
Esc Quit capture
Ctrl + M Move the selection area
Ctrl + C Copy to clipboard
Ctrl + S Save selection as a file
Ctrl + Z Undo the last modification
Ctrl + Shift + Z Redo the next modification
Ctrl + Q Leave the capture screen
Ctrl + O Choose an app to open the capture
Return Upload the selection to Imgur
Spacebar Toggle visibility of sidebar with options of the selected tool, color picker for the drawing color and history menu
Right Click Show the color wheel
Mouse Wheel Change the tool's thickness
Print screen Capture Screen
Shift + Print Screenshot History

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

Global

If you want use Flameshot as a default screenshot utility, chances are you want to launch it using the Prt Sc key. Flameshot doesn't yet offer a fully-automated option to do so, but you can configure your system to do so.

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 keys to the following actions by default:

Keys Description
Prt Sc Start the Flameshot screenshot tool and take a screenshot
Ctrl + Prt Sc Wait for 3 seconds, then start the Flameshot screenshot tool and take a screenshot
Shift + Prt Sc Take a full-screen (all monitors) screenshot and save it
Ctrl + Shift + Prt Sc Take a full-screen (all monitors) screenshot and copy it to the clipboard

If you don't like the defaults, you can change them manually later.

Steps for using the configuration:

  1. The configuration file configures shortcuts so that Flameshot automatically saves (without opening the save dialog) screenshots to ~/Pictures/Screenshots folder. Make sure you have that folder by running the following command:

    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
  3. Go to System SettingsShortcutsCustom Shortcuts.
  4. If there's one, you'll need to disable an entry for Spectacle, the default KDE screenshot utility first because its shortcuts might collide with Flameshot's ones; so, just uncheck the Spectacle entry.
  5. Click EditImport..., navigate to the Desktop folder (or wherever you saved the configuration file) and open the configuration file.
  6. Now the Flameshot entry should appear in the list. Click Apply to apply the changes.
  7. If you want to change the defaults, you can expand the entry, select the appropriate action and modify it as you wish; the process is pretty self-explanatory.

On Ubuntu (Tested on 18.04, 20.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 (adaptated from Pavel's answer on AskUbuntu).

  1. Remove the binding on Prt Sc using the following command.

    gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot '[]'
  2. Ubuntu 18.04: Go to Settings > Device > Keyboard and press the '+' button at the bottom. Ubuntu 20.04: Go to Settings > Keyboard 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

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:

There are also options for installing on macOS:

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 softwares, 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

Run-time

Optional

Debian

# Compile-time
apt install g++ cmake build-essential qt5-default 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-devel 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

MacOS

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

brew install qt5
brew install cmake

Build

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

mkdir build
cd build
cmake ../
make

NOTE: for macOS you should replace command

cmake ../

to

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

When make command completed you can launch flameshot from project_folder/build/src folder

Install

Simply use make install with privileges. Note: If you install from source, there is no uninstaller, you will need to manually remove the files. Consider using CMAKE_INSTALL_PREFIX to install to a custom location for easy removal.

FAQ

https://flameshot.org/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

Free code signing provided by SignPath.io, certificate by 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: