pengui
pengui
artifact build status release C++20 license

Bloat-free screenshot utility

Features and tools

What's the difference compared to other screenshot applications?

Most of the popular alternatives use a huge, bloated frameworks like Qt or GTK. Meanwhile, pengui uses raw OpenGL and ImGui and requires only half of the memory that KDE's Spectacle needs.

It's a known bug that pengui can be CPU-consuming, it will be fixed in the upcoming release. Also, pengui uses GTK as a library, but only to be able to take screenshots with libportal, not to display any content.

Installing

Automatic Installation

Paste this command into your terminal:

wget -O - https://pengui.kanashimo.net/install.sh | sh

Alternatively, if you don't trust the first source or it just doesn't work, you can download the script directly form the repository:

wget -O - https://raw.githubusercontent.com/kanashimo/pengui/refs/heads/main/install.sh | sh

After installation, you can assign a system shortcut to pengui for launching it with something like Meta+Shift+S or PrntScr in your system settings.

Manual Installation

flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user pengui.flatpak

If you don't have GNOME runtime installed and for some reason it wasn't installed automatically, run this command:

flatpak install --user flathub org.gnome.Platform//51

Same as in automatic installation, you can now assign system shortcut to pengui for launching it with for something like Meta+Shift+S or PrntScr in your system's settings.

How to uninstall?

To uninstall pengui, use flatpak uninstall with --user flag.

flatpak uninstall --user net.kanashimo.pengui

Configuration

Pengui uses .toml files for its configuration, here you can get a quick tour of the language if you don't know it yet.

Where is the config being stored?

The answer is as always, it depends. If you are running this application in the "official" way (so through Flatpak), you will be albe to find the config in $HOME/.var/app/net.kanashimo.pengui/config/pengui. Otherwise, if you are running it natively, your config will be in $HOME/.config/pengui.

Available properties

[crop.border]

Property Type Default value
color [R, G, B] [90, 200, 255]
width number 2

[crop.glow] (experimental, disabled by default)

Property Type Default value
color [R, G, B] [90, 200, 255]
enabled boolean false

[ruler.border]

Property Type Default value
color [R, G, B] [90, 200, 255]
width number 5

[screenshot]

Property Type Default value
save_location string (path) $XDG_PICTURES_DIR/PenguiScreenshots

Full example of working config file

[crop.border]
color = [ 90, 200, 255 ]
width = 2.0

[crop.glow]
color = [ 90, 200, 255 ]
enabled = false

[ruler.border]
color = [ 90, 200, 255 ]
width = 5.0

[screenshot]
save_location = '/home/example/Pictures/PenguiScreenshots'

Building from source

Requirements

Building pengui

meson setup build
meson compile -C build

After building you can run meson install -C build to install the binary, although it isn't recommended because pengui is intended to be a Flatpak application, so this option has been never tested. Use at your own risk.

Building pengui as a Flatpak application

meson subprojects download
flatpak-builder --user --install --force-clean build-dir flatpak/net.kanashimo.pengui.yml

Contributing

All contributions are welcome! If you have come up with an idea to add a new feature and want to implement it (or just request it), create an issue. If you found any bug, I'd really appreciate it if you could report it.

Acknowledgements

Special thanks to GraphLink for making our logo.

License

Pengui is released under the GPL-3.0 license.

The logo is under the CC BY-SA 4.0 license.