README cleanup (#339)

This commit is contained in:
Alfredo Ramos
2018-09-05 15:53:56 -05:00
committed by Dharkael
parent 1d7186a2f0
commit dd24ca0eeb

295
README.md
View File

@@ -1,83 +1,117 @@
<h1 align="center">
<br>
<a href="https://github.com/lupoDharkael/flameshot">
<img src="https://cdn.rawgit.com/lupoDharkael/flameshot/aee5c03a/img/app/flameshot.svg" alt="Flameshot logo" />
</a>
<br>
Flameshot
<br>
</h1>
<h4 align="center">Powerful yet simple to use screenshot software.</h4>
<div align="center">
<a href="https://travis-ci.org/lupoDharkael/flameshot"><img src="https://img.shields.io/travis/lupoDharkael/flameshot.svg" /></a>
<a href="https://ci.appveyor.com/project/lupoDharkael/flameshot"><img src="https://ci.appveyor.com/api/projects/status/github/lupoDharkael/flameshot?svg=true" /></a>
<a href="https://github.com/lupoDharkael/flameshot/releases"><img src="https://img.shields.io/github/release/lupoDharkael/flameshot.svg" /></a>
<a href="https://github.com/lupoDharkael/flameshot/releases"><img src="https://img.shields.io/github/downloads/lupoDharkael/flameshot/total.svg" /></a>
<a href="https://github.com/lupoDharkael/flameshot/blob/master/LICENSE"><img src="https://img.shields.io/github/license/lupoDharkael/flameshot.svg" /></a>
<a href="https://github.com/lupoDharkael/flameshot"><img src="https://img.shields.io/badge/platform-Linux%20Windows-lightgrey.svg" /></a>
<p>
<h1>
<a href="https://github.com/lupoDharkael/flameshot">
<img src="img/app/flameshot.svg" alt="Flameshot" />
</a>
<br />
Flameshot
</h1>
<h4>Powerful yet simple to use screenshot software.</h4>
</p>
<p>
<a href="https://travis-ci.org/lupoDharkael/flameshot">
<img src="https://img.shields.io/travis/lupoDharkael/flameshot.svg?style=flat-square&label=gnu/linux" alt="GNU/Linux Build Status" />
</a>
<a href="https://ci.appveyor.com/project/lupoDharkael/flameshot">
<img src="https://img.shields.io/appveyor/ci/lupoDharkael/flameshot.svg?style=flat-square&label=windows" alt="Windows Build Status" />
</a>
<a href="https://github.com/lupoDharkael/flameshot/releases">
<img src="https://img.shields.io/github/release/lupoDharkael/flameshot.svg?style=flat-square" alt="Latest Stable Release" />
</a>
<a href="https://github.com/lupoDharkael/flameshot/releases">
<img src="https://img.shields.io/github/downloads/lupoDharkael/flameshot/total.svg?style=flat-square" alt="Total Downloads" />
</a>
<a href="https://github.com/lupoDharkael/flameshot/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/lupoDharkael/flameshot.svg?style=flat-square" alt="License" />
</a>
</p>
</div>
<br>
## Usage Preview
![image](./img/preview/animatedUsage.gif)
## Preview
![image](img/preview/animatedUsage.gif)
## Index
- [Features](#features)
- [Contribute](#contribute)
- [Usage](#usage)
- [CLI configuration](#cli-configuration)
- [Keyboard Shortcuts](#keyboard-shortcuts)
- [Local](#local)
- [Global](#global)
- [On KDE Plasma desktop](#on-kde-plasma-desktop)
- [Considerations](#considerations)
- [Installation](#installation)
- [Compilation](#compilation)
- [Debian](#debian)
- [Fedora](#fedora)
- [Arch](#arch)
- [Dependencies](#dependencies)
- [Compile-time](#compile-time)
- [Run-time](#run-time)
- [Optional](#optional)
- [Debian](#debian)
- [Fedora](#fedora)
- [Arch](#arch)
- [Build](#build)
- [Install](#install)
- [Packaging](#packaging)
- [License](#license)
- [Contribute](#contribute)
- [Donations](#donations)
- [Acknowledgment](#acknowledgment)
## Features
- Customizable appearance.
- Easy to use.
- In-app screenshot edition.
- DBus interface.
- Upload to Imgur.
## Contribute
If you want to contribute check the [CONTRIBUTING.md](./CONTRIBUTING.md)
## Usage
Example commands:
- capture with GUI:
`flameshot gui`
- Capture with GUI:
- capture with GUI with custom save path:
```shell
flameshot gui
```
`flameshot gui -p ~/myStuff/captures`
- Capture with GUI with custom save path:
- open GUI with a delay of 2 seconds:
```shell
flameshot gui -p ~/myStuff/captures
```
`flameshot gui -d 2000`
- Open GUI with a delay of 2 seconds:
- fullscreen capture with custom save path (no GUI) and delayed:
```shell
flameshot gui -d 2000
```
`flameshot full -p ~/myStuff/captures -d 5000`
- Fullscreen capture with custom save path (no GUI) and delayed:
- fullscreen capture with custom save path copying to clipboard:
```shell
flameshot full -p ~/myStuff/captures -d 5000
```
`flameshot full -c -p ~/myStuff/captures`
- Fullscreen capture with custom save path copying to clipboard:
- capture the screen containing the mouse and print the image (bytes) in PNG format:
```shell
flameshot full -c -p ~/myStuff/captures
```
`flameshot screen -r`
- Capture the screen containing the mouse and print the image (bytes) in PNG format:
- capture the screen number 1 and copy it to the clipboard:
```shell
flameshot screen -r
```
`flameshot screen -n 1 -c`
- Capture the screen number 1 and copy it to the clipboard:
```shell
flameshot screen -n 1 -c
```
In case of doubt choose the first or the second command as shortcut in your favorite desktop environment.
@@ -86,19 +120,26 @@ Do a right click on the tray icon and you'll see some menu items to open the con
Check out the information window to see all the 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:
- Open the configuration menu:
`flameshot config`
```shell
flameshot config
```
- show the initial help message in the capture mode:
- Show the initial help message in the capture mode:
`flameshot config --showhelp true`
```shell
flameshot config --showhelp true
```
- for more information about the available options use the help flag:
- For more information about the available options use the help flag:
`flameshot config -h`
```shell
flameshot config -h
```
## Keyboard shortcuts
@@ -127,26 +168,29 @@ If you want use Flameshot as a default screenshot utility, chances are you want
To make configuration easier, there's a [file](docs/shortcuts-config/flameshot-shortcuts-kde) 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 |
|--- |--- |
| <kbd>Prt Sc</kbd> | Start the Flameshot screenshot tool and take a screenshot |
| <kbd>Ctrl</kbd> + <kbd>Prt Sc</kbd> | Wait for 3 seconds, then start the Flameshot screenshot tool and take a screenshot |
| <kbd>Shift</kbd> + <kbd>Prt Sc</kbd> | Take a full-screen (all monitors) screenshot and save it |
| <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Prt Sc</kbd> | Take a full-screen (all monitors) screenshot and copy it to the clipboard |
| Keys | Description |
|--- |--- |
| <kbd>Prt Sc</kbd> | Start the Flameshot screenshot tool and take a screenshot |
| <kbd>Ctrl</kbd> + <kbd>Prt Sc</kbd> | Wait for 3 seconds, then start the Flameshot screenshot tool and take a screenshot |
| <kbd>Shift</kbd> + <kbd>Prt Sc</kbd> | Take a full-screen (all monitors) screenshot and save it |
| <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Prt Sc</kbd> | 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:
```
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:
```shell
mkdir -p ~/Pictures/Screenshots
```
(If you don't like the default location, you can skip this step and configure your preferred directory later.)
(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/lupoDharkael/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde
```shell
cd ~/Desktop
wget https://raw.githubusercontent.com/lupoDharkael/flameshot/master/docs/shortcuts-config/flameshot-shortcuts-kde
```
3. Go to _System Settings_ → _Shortcuts_ → _Custom 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.
@@ -164,11 +208,12 @@ Steps for using the configuration:
- Press <kbd>Enter</kbd> or <kbd>Ctrl</kbd> + <kbd>C</kbd> 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 <kbd>Ctrl</kbd> + <kbd>S</kbd> will save your capture in a file! Check the [Shortcuts](#shortcuts) for more information.
- Execute the command `flameshot` without parameters or use the "Launch Flameshot" desktop entry to launch a running instance of the program without taking actions.
- Execute the command `flameshot` without parameters to launch a running instance of the program without taking actions.
## Installation
There are packages available for a few distros:
- [Arch](https://www.archlinux.org/packages/community/x86_64/flameshot/)
+ Snapshot also available via AUR: [flameshot-git](https://aur.archlinux.org/packages/flameshot-git).
- [Debian 10+](https://tracker.debian.org/pkg/flameshot): `apt install flameshot`
@@ -180,31 +225,77 @@ There are packages available for a few distros:
- Fedora: `dnf install flameshot`
## Compilation
The compilation requires Qt version 5.3 or higher and GCC 4.9.2 or higher.
### Debian
Compilation Dependencies:
````
apt install git g++ build-essential qt5-qmake qt5-default qttools5-dev-tools libqt5svg5-dev
````
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](#dependencies) below for more information.
Compilation: run `qmake && make` in the main directory.
### Dependencies
### Fedora
Compilation Dependencies:
````
dnf install qt5-devel gcc-c++ git qt5-qtbase-devel qt5-linguist qt5-qtsvg-devel
````
#### Compile-time
Compilation: run `qmake-qt5 && make` in the main directory.
- Qt >= 5.3
+ Development tools
- GCC >= 4.9.2
### Arch
Compilation Dependencies:
````
pacman -S base-devel git qt5-base qt5-tools qt5-svg
````
#### Run-time
Compilation: run `qmake && make` in the main directory.
- Qt
+ SVG
#### Optional
- Git
- OpenSSL
- CA Certificates
#### Debian
```shell
# Compile-time
apt install g++ build-essential qt5-default qt5-qmake qttools5-dev-tools
# Run-time
apt install libqt5dbus5 libqt5network5 libqt5core5a libqt5widgets5 libqt5gui5 libqt5svg5-dev
# Optional
apt install git openssl ca-certificates
```
#### Fedora
```shell
# Compile-time
dnf install gcc-c++ qt5-devel qt5-qtbase-devel qt5-linguist
# Run-time
dnf install qt5-qtbase qt5-qtsvg-devel
# Optional
dnf install git openssl ca-certificates
```
#### Arch
```shell
# Compile-time
pacman -S base-devel git qt5-base qt5-tools
# Run-time
pacman -S qt5-svg
# Optional
pacman -S openssl ca-certificates
```
### Build
After installing all the dependencies, finally run the following commands in the sources root directory:
```shell
mkdir build
cd build
qmake ../
make
```
### Install
@@ -212,56 +303,36 @@ Simply use `make install` with privileges.
## Packaging
Having `git` installed is required if you want to have precise app version information inside Flameshot after the generation of the makefile with `qmake`.
Having `git` installed is required if you're building Flameshot from a snapshot to have precise version information.
In order to generate the makefile installing in `/usr` instead of in `/usr/local` you can use the `packaging` option to generate the proper makefile (`qmake CONFIG+=packaging` instead of just `qmake`).
In order to generate the instructions in the `Makefile` to install the application in `/usr` instead of in `/usr/local` you can pass the `packaging` option to `qmake` (`qmake CONFIG+=packaging`).
If you want to install in a custom directory you can use the `INSTALL_ROOT` variable.
**Example**:
You want to install Flameshot in ~/myBuilds/test. You would execute the following to do so:
`qmake CONFIG+=packaging && make INSTALL_ROOT=~/myBuilds/test install`
### Runtime Dependencies
If you want to install Flameshot in `~/myBuilds/test`, you can execute the following to do so:
**Debian**:
````
libqt5dbus5, libqt5network5, libqt5core5a, libqt5widgets5, libqt5gui5
````
Optional:
```
openssl, ca-certificates
```
**Fedora**:
````
qt5-qtbase
````
Optional:
```
openssl, ca-certificates
```
**Arch**:
````
qt5-base
````
Optional:
```
openssl, ca-certificates
```shell
qmake CONFIG+=packaging
make INSTALL_ROOT=~/myBuilds/test install
```
## License
- The main code is licensed under [GPLv3](./LICENSE)
- The logo of Flameshot is licensed under [Free Art License v1.3](./img/flameshotLogoLicense.txt)
- The main code is licensed under [GPLv3](LICENSE)
- The logo of Flameshot is licensed under [Free Art License v1.3](img/app/flameshotLogoLicense.txt)
- The button icons are licensed under Apache License 2.0. See: https://github.com/google/material-design-icons
- The code at capture/capturewidget.cpp is based on https://github.com/ckaiser/Lightscreen/blob/master/dialogs/areadialog.cpp (GPLv2)
- The code at capture/capturewidget.h is based on https://github.com/ckaiser/Lightscreen/blob/master/dialogs/areadialog.h (GPLv2)
- I copied a few lines of code from KSnapshot regiongrabber.cpp revision 796531 (LGPL)
- I copied a few lines of code from KSnapshot regiongrabber.cpp revision `796531` (LGPL)
- Qt-Color-Widgets taken and modified from https://github.com/mbasaglia/Qt-Color-Widgets (see their license and exceptions in the project) (LGPL/GPL)
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.
## Contribute
If you want to contribute check the [CONTRIBUTING.md](CONTRIBUTING.md)
## Donations
I improve Flameshot in my free time because I want to create something good for everyone to use.
If you want you can donate some bucks [here](https://www.paypal.me/lupoDharkael).