Skip to content

Repository files navigation

LumineCapture
LumineCapture

Fast, lightweight Wayland screenshot tool

Preview

preview

Features

  • Easy to use.
  • Lightweight.
  • Written in Rust.
  • Doesn't need a background daemon for best performance (except for GPU OCR, but that's optional).
  • In-app screenshot editing.
  • OCR.
  • Pin.

Speed Comparison (LumineCapture vs Flameshot vs Spectacle)

every test ran on a dual-monitor setup, so each screenshot covered the whole workspace (both screens), which made every run a bit slower. Compare the tools with each other rather than looking at the absolute numbers.

1) In optimal conditions:

The measurement for each of the three started exactly one frame before the command execution, so the actual time is approximately 0.10 ms lower for each one. It's also important to note that the Spectacle measurement might be unfair. I decided to end the measurement exactly when the application is fully initialized and ready to use, and that's when the toolbar starts appearing, not immediately after the screen dims. This is because Spectacle hasn't loaded the toolbar by that point. The measurement ends at the frame when the toolbar animation starts

first

2) In high CPU usage condition:

second

3) Saving a full-workspace screenshot without a GUI (30 times):

Command Mean [ms] Min [ms] Max [ms] Relative
LumineCapture 150.5 ± 51.9 111.0 280.9 1.00
Spectacle 576.1 ± 11.7 556.5 605.4 3.83 ± 1.32
Flameshot (daemon running) 737.9 ± 33.4 692.5 841.0 4.90 ± 1.71

Script: scripts/bench.sh

Usage

LumineCapture supports different launch options, but if you don't really care about them and just want to use it, the three most obvious commands are:

  1. lumine-capture: takes a screenshot of the whole workspace and opens it in the editor. (If the capture goes through the portal you can of course also pick a single monitor by hand in its dialog, but it is better to use KWin or image-copy directly. The backend is chosen automatically; set LUMINE_CAPTURE=kde, image-copy or portal to force one.)
  2. lumine-capture -m: takes a screenshot of the monitor under the pointer.
  3. lumine-capture -r: no editor and no annotations, just drag a region; the screenshot is taken as soon as you release the mouse button (by default it is both saved and copied).

There is also -t <letters>, which changes what happens to the screenshot depending on your choice, where the letters are:

  • s saves it to the screenshots folder, ~/Pictures/screenshots/<year-month>/ by default
  • c copies it to the clipboard
  • p pins it to the screen

The letters can be used in any order, even scp; they don't get in each other's way.

In detail:

lumine-capture [MODE] [OPTIONS]
lumine-capture --ocr-daemon [serve|status|stop|calibrate]

Modes (without one, the editor opens):
  -f, --full           Capture the screen right away, no editor
  -w, --window         Capture the active window right away (KDE Plasma only)
  -r, --region         Drag a region, releasing the mouse takes the shot

Options:
  -m, --monitor        Only the monitor under the pointer
  -t, --to <LETTERS>   What to do with the shot: c copy, p pin, s save, in any order
                       and mix, e.g. -t pc. Defaults to general.accept in the config.
                       In the editor, this is what Enter and a double click do
  -o, --output <DIR>   Save the shot into this directory instead of the configured
                       one, creating it if needed; implies s in --to
  -s, --speed          Print how long each startup step took to stderr
      --config <PATH>  Use this config file instead of the default location
      --print-default-config
                       Print the default config.toml and exit
  -h, --help           Print this help and exit
  -V, --version        Print the version and exit

Config file

You can also edit some of the settings (like overriding the default colors) in the configuration file.
Linux path: ~/.config/LumineCapture/config.toml.

Keyboard shortcuts

Local

These shortcuts are available in the editor. All of them can be changed in the [keys] section of the config file.

Keys Description
S Set the Selection as the tool (choose or adjust the capture area)
V Set the Pick as the tool (select, move and resize annotations)
O Set the OCR as the tool (recognize text, select it and copy)
G Set the Eyedropper as the tool (pick a color from the screen)
T Set the Text as the tool
P Set the Pen as the tool
D Set the Line as the tool
A Set the Arrow as the tool
R Set the Rectangle as the tool
C Set the Circle as the tool
N Set the Numbered arrow as the tool
←, ↓, ↑, → Move the selection
Shift + ←, ↓, ↑, → Move the selection faster
Alt + ←, ↓, ↑, → Resize the selection
Alt + Shift + ←, ↓, ↑, → Resize the selection faster
Return Finish with the default action (general.accept, copy by default)
Ctrl + C Copy to the clipboard and finish
Ctrl + S Save as a file and finish
Ctrl + P Pin to the screen and finish
Esc Quit without taking the screenshot
Ctrl + Z Undo the last modification
Ctrl + Shift + Z, Ctrl + Y Redo the next modification
Ctrl + A Select the whole monitor under the cursor
Delete, Backspace Delete the selected annotation
Space Toggle the visibility of the toolbar and the settings panels
M Toggle the magnifier
[, ] Decrease / increase the size (width or font) of the current tool
Double click on the selection Finish with the default action, same as Return
Right Click Clear the selection
Mouse Wheel Change the tool's size (width or font)

With the OCR tool active, Return and Ctrl + C copy the selected text, and Ctrl + A selects all recognized text. With the Eyedropper they copy the picked color.

Global

  • KDE Plasma: import lumine-capture-shortcuts-kde.kksrc in System Settings -> Keyboard -> Shortcuts -> Import -> Custom Scheme, or bind commands youself. Spectacle holds Meta + Shift + S and Shift + Print by default, so clear them there first if you want.
  • COSMIC and others: bind them in your bind settings.

Installation

Packages are on the releases page.

Note

Tested only on KDE Plasma and COSMIC. Other Wayland compositors may work but were never tried. GNOME is not supported yet.

Fedora 43+

sudo dnf install https://github.com/Netflate/LumineCapture/releases/download/v0.1.1/lumine-capture-0.1.1-1.x86_64.rpm

Ubuntu 24.04+ / Debian 13+

wget https://github.com/Netflate/LumineCapture/releases/download/v0.1.1/lumine-capture_0.1.1-1_amd64.deb
sudo apt install ./lumine-capture_0.1.1-1_amd64.deb

Arch Linux

curl -LO https://github.com/Netflate/LumineCapture/releases/download/v0.1.1/lumine-capture-0.1.1-1-x86_64.pkg.tar.zst
sudo pacman -U lumine-capture-0.1.1-1-x86_64.pkg.tar.zst

or build it yourself from the PKGBUILD:

git clone https://github.com/Netflate/LumineCapture && cd LumineCapture/packaging/arch && makepkg -si

License

Licensed under either of

The bundled Inter font is under the SIL Open Font License 1.1 (LICENSE-OFL).

Acknowledgments

A lot of the reference for this project, including the layout of this README, was taken from Spectacle and Flameshot. Thanks to both projects and everyone who works on them.

About

Fast, lightweight Wayland screenshot tool

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages