1# [ksnip](http://ksnip.org/) 2[![Linux build status][github-linux-badge]][github-linux-url] [![Windows build status][github-windows-badge]][github-windows-url] [![MacOS build status][github-macos-badge]][github-macos-url] [![GitHub commits (since latest release)][gh-comm-since-badge]][gh-comm-since-url] 3[![Translation status][weblate-badge]][weblate-url] [![GitHub total downloads][gh-dl-badge]][gh-dl-url] [![SourceForge total downloads][sf-dt-badge]][sf-dt-badge-url] [![Discord][discord-badge]][discord-badge-url] 4[![IRC: #ksnip on libera.chat][libera-badge]][libera-badge-url] 5 6Version v1.9.2 7 8Ksnip is a Qt-based cross-platform screenshot tool that provides many annotation features 9for your screenshots. 10 11![ksnip](https://i.imgur.com/0oP6i1H.png "Ksnip with annotations") 12 13# Features 14Latest ksnip version contains following features: 15* Supports Linux (X11, Plasma Wayland, GNOME Wayland and xdg-desktop-portal Wayland), Windows and macOS. 16* Screenshot of a custom rectangular area that can be drawn with mouse cursor. 17* Screenshot of last selected rectangular area without selecting again. 18* Screenshot of the screen/monitor where the mouse cursor is currently located. 19* Screenshot of full-screen, including all screens/monitors. 20* Screenshot of window that currently has focus. 21* Screenshot of window under mouse cursor. 22* Screenshot with or without mouse cursor. 23* Capture mouse cursor as annotation item that can be moved and deleted. 24* Customizable capture delay for all capture options. 25* Upload screenshots directly to imgur.com in anonymous or user mode. 26* Upload screenshots via custom user defined scripts. 27* Command-line support, for capturing screenshots and saving to default location, filename and format. 28* Filename wildcards for Year ($Y), Month ($M), Day ($D), Time ($T) and Counter (multiple # characters for number with zero-leading padding). 29* Print screenshot or save it to PDF/PS. 30* Annotate screenshots with pen, marker, rectangles, ellipses, texts and other tools. 31* Annotate screenshots with stickers and add custom stickers. 32* Obfuscate image regions with blur and pixelate. 33* Add effects to image (Drop Shadow, Grayscale, invert color or Border). 34* Add watermarks to captured images. 35* Global hotkeys for capturing screenshots (currently only for Windows and X11). 36* Tabs for screenshots and images. 37* Open existing images via dialog, drag-and-drop or paste from clipboard. 38* Run as single instance application (secondary instances send cli parameter to primary instance). 39* Pin screenshots in frameless windows that stay atop other windows. 40* User-defined actions for taking screenshot and post-processing. 41* Many configuration options. 42 43# Supported Screenshot Types 44| | Rect Area | Last Rect Area | Full Screen | Current Screen | Active Window | Window Under Cursor | Without Mouse Cursor | Screenshot Portal | 45| -------------------|:---------:|:--------------:|:-----------:|:--------------:|:-------------:|:-------------------:|:--------------------:|:-----------------:| 46| X11 | X | X | X | X | X | | X | | 47| Plasma Wayland | | | X | X | | X | | | 48| Gnome Wayland | X | X | X | X | X | | X | | 49| xdg-desktop-portal | | | | | | | | X | 50| Windows | X | X | X | X | X | | X | | 51| macOS | X | X | X | X | | | | | 52 53# Installing Binaries 54Binaries can be downloaded from the [Releases page](https://github.com/ksnip/ksnip/releases). 55Currently RPM, DEB, APT, Snap, Flatpak and AppImage for Linux, 56zipped EXE for Windows and 57APP for macOS in a DMG package are available. 58 59### Continuous build 60All supported binaries are built for every pushed commit, to be found at the top of the 61release page. Continuous build artifacts are not fully tested and in most cases they are work in progress, 62so use them with caution. 63 64## Linux 65 66### AppImage 67To use AppImages, make them executable and run them, no installation required. 68``` 69$ chmod a+x ksnip*.AppImage 70$ ./ksnip*.AppImage 71``` 72 73More info about setting to executable can be found [here](https://discourse.appimage.org/t/how-to-make-an-appimage-executable/80). 74 75### RPM 76Just install them via RPM and use. 77``` 78$ rpm -Uvh ksnip*.rpm 79$ ksnip 80``` 81 82### DEB 83Just install them via apt and start using. 84``` 85$ sudo apt install ./ksnip*.deb 86$ ksnip 87``` 88 89### APT 90 91Starting with Ubuntu 21.04 Hirsute Hippo, you can install from the [official package](https://launchpad.net/ubuntu/+source/ksnip): 92``` 93$ sudo apt install ksnip 94``` 95 96For older Ubuntu versions, you can use [@nemonein](https://github.com/nemonein)'s unofficial [PPA](url): 97``` 98sudo add-apt-repository ppa:nemonein/ksnip 99sudo apt update 100sudo apt install ksnip 101``` 102 103For Debian 11 and later releases, you can install from the [official package](https://tracker.debian.org/pkg/ksnip): 104``` 105$ sudo apt install ksnip 106``` 107 108For Debian 10 and Debian 9, ksnip is available via [Debian Backports](https://backports.debian.org/). 109Please enable `bullseye-backports` and `buster-backports` repo for Debian 10 and Debian 9 respectively before installing using `sudo apt install ksnip`. 110 111### Archlinux 112Ksnip is in the [Community repository](https://archlinux.org/packages/community/x86_64/ksnip/), so you can install it directly via pacman. 113``` 114$ sudo pacman -S ksnip 115``` 116 117If you want to build from the GIT repository, you can use the [AUR package](https://aur.archlinux.org/packages/ksnip-git/) (make sure you build the necessary dependencies too). 118``` 119$ yay -S ksnip-git kimageannotator-git kcolorpicker-git 120``` 121 122### Snap 123The usual method for Snaps, will install the latest version: 124``` 125$ sudo snap install ksnip 126``` 127 128The continuous build version is also available as edge, in order to install it you need to provide the edge flag: 129``` 130$ sudo snap install ksnip --edge 131``` 132 133Snap startup time can be sped up and console output cleaned up from following error `Could not create AF_NETLINK socket (Permission denied)` by running the following commands: 134``` 135$ snap connect ksnip:network-observe 136$ snap connect ksnip:network-manager-observe 137``` 138 139If you need to save screenshots to a removable media, the following additional connection is required: 140``` 141$ snap connect ksnip:removable-media 142``` 143 144This only needs to be done once and connects some Snap plugs which are currently not auto-connected. 145 146[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/ksnip) 147 148### Flatpak 149The usual method for Flatpaks will install the latest version: 150``` 151$ flatpak install flathub org.ksnip.ksnip 152``` 153 154Then just start it: 155``` 156$ flatpak run org.ksnip.ksnip 157``` 158 159<a href='https://flathub.org/apps/details/org.ksnip.ksnip'><img width='220' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a> 160 161## Windows 162 163### MSI 164The MSI installer installs ksnip on your system and is the preferred way for installing ksnip under Windows. 165 166### EXE 167The EXE file with all required dependencies comes in a zipped package, which just need to be unzipped 168with your favorite unpacking tool. Ksnip can then be started by just double-clicking ksnip.exe. 169 170## macOS 171 172### APP 173The app file comes in a DMG package which needs to be opened and the ksnip.app file needs to be dragged 174and dropped into the "Application" folder. After that the application can be started by double clicking ksnip.app 175 176### Homebrew Cask 177Just install via Homebrew and start using from your "Applications" folder. 178``` 179$ brew install --cask ksnip 180``` 181 182# Dependencies 183ksnip depends on [kImageAnnotator](https://github.com/ksnip/kImageAnnotator) and [kColorPicker](https://github.com/DamirPorobic/kColorPicker) which needs 184to be installed before building ksnip from source. Installation instructions can be found on the Github pages. 185 186# Building from source 1871. Get latest release from GitHub by cloning the repo: 188 `$ git clone https://github.com/ksnip/ksnip` 1892. Change to repo directory: 190 `$ cd ksnip` 1913. Make new build directory and enter it: 192 `$ mkdir build && cd build` 1934. Create the makefile and build the project: 194 `$ cmake .. && make` 1955. Now install the application, eventually you need to run it with sudo: 196 `$ sudo make install` 1976. Run the application: 198 `$ ksnip` 199 200If you are using Archlinux, you may prefer to [build ksnip through AUR](https://github.com/ksnip/ksnip#archlinux). 201 202# Translations 203As with all continuous translations, contributors are always welcome! 204For translations [Weblate](https://hosted.weblate.org/projects/ksnip/translations/) is used. 205[![Translation status](https://hosted.weblate.org/widgets/ksnip/-/translations/multi-green.svg)](https://hosted.weblate.org/engage/ksnip/?utm_source=widget) 206 207For translations of annotator-related texts, please refer to [kImageAnnotator](https://github.com/ksnip/kImageAnnotator) 208 209# Known Issues 210 211### X11 2121. Snipping area with transparent background doesn't work when compositor is turned off, freeze background is used in that case. 213 214### macOS 2151. Snipping area with transparent background doesn't work, freeze background is always used. Issue [#151](https://github.com/ksnip/ksnip/issues/151) 2162. Second activation of snipping area doesn't get focus, you need to switch to the right side in order to see the snipping area. Issue [#152](https://github.com/ksnip/ksnip/issues/152) 2173. Mouse cursor is always captured. Issue [#153](https://github.com/ksnip/ksnip/issues/153) 218 219### Wayland 2201. Portal and Native Screenshots not working under KDE Plasma `>= 5.80`. The issue is coming from a recent change in KDE 221Plasma that prevents access to DBUS Interfaces responsible for taking screenshots. This issue is going to be fixed in 222future Plasma releases for the Portal Screenshots. Workaround for making the Portal Screenshots work is adding the string 223`X-KDE-DBUS-Restricted-Interfaces=org.kde.kwin.Screenshot` to the 224`/usr/share/applications/org.freedesktop.impl.portal.desktop.kde.desktop` file and then restarting. Don't forget to 225enforce Portal screenshots in settings. Issue [#424](https://github.com/ksnip/ksnip/issues/424) 2262. Under Gnome Wayland copying images to clipboard and then pasting them somewhere might not work. This happens currently 227with native Wayland. A workaround is using XWayland by starting ksnip like this `QT_QPA_PLATFORM=xcb /usr/bin/ksnip` or 228switch to XWayland completely by exporting that variable `export QT_QPA_PLATFORM=xcb`. Issue [#416](https://github.com/ksnip/ksnip/issues/416) 2293. Native Wayland screenshots are no longer possible with Gnome 41 and higher. The Gnome developers have forbidden 230access to the DBus interface that provides Screenshots under Wayland and leave non Gnome application only the possibility 231to use xdg-desktop-portal screenshots. Security comes before usability for the Gnome developers. There is an open feature 232request to only grant screenshot permission once instead of for every screenshot, help us raise awareness for such feature 233[here](https://github.com/flatpak/xdg-desktop-portal/issues/649). 2344. Global Hotkeys don't work under Wayland, this is due to the secure nature of Wayland. As long as compositor developers 235don't provide an interface for us to work with Global Hotkeys, does won't be supported. 236 237# Discussion & Community 238If you have general questions, ideas or just want to talk about ksnip, please join our [Discord](http://discord.ksnip.org) server. 239 240# Bug report 241Please report any bugs or feature requests related to the annotation editor on the [kImageAnnotator](https://github.com/ksnip/kImageAnnotator/issues) GitHub page under the "Issue" section. 242All other bugs or feature requests can be reported on the [ksnip](https://github.com/ksnip/ksnip/issues) GitHub page under the "Issue" section. 243 244# Contribution 245Any contribution welcome, be it code, translations or other things. Currently, this is needed: 246* Write code and fix bugs for linux, windows and macOS. 247* Write wiki entries and documentation for ksnip. 248* Package ksnip for different operating systems and distros. 249 250# Donation 251ksnip is a non-profitable copylefted libre software project, and still has some costs that need to be covered, like domain costs or hardware costs for cross-platform support. 252If you want to help or just want to appreciate the work being done by treating developers to a beer or coffee, 253you can do that [here](https://www.paypal.me/damirporobic), donations are always welcome :) 254 255[github-linux-badge]: https://github.com/ksnip/ksnip/actions/workflows/linux.yml/badge.svg 256[github-linux-url]: https://github.com/ksnip/ksnip/actions/workflows/linux.yml 257 258[github-windows-badge]:https://github.com/ksnip/ksnip/actions/workflows/windows.yml/badge.svg 259[github-windows-url]: https://github.com/ksnip/ksnip/actions/workflows/windows.yml 260 261[github-macos-badge]: https://github.com/ksnip/ksnip/actions/workflows/macos.yml/badge.svg 262[github-macos-url]: https://github.com/ksnip/ksnip/actions/workflows/macos.yml 263 264[weblate-badge]: https://hosted.weblate.org/widgets/ksnip/-/translations/svg-badge.svg 265[weblate-url]: https://hosted.weblate.org/engage/ksnip/?utm_source=widget 266 267[gh-dl-badge]: https://img.shields.io/github/downloads/damirporobic/ksnip/total.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMTIgMTIgNDAgNDAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zMiwxMy40Yy0xMC41LDAtMTksOC41LTE5LDE5YzAsOC40LDUuNSwxNS41LDEzLDE4YzEsMC4yLDEuMy0wLjQsMS4zLTAuOWMwLTAuNSwwLTEuNywwLTMuMiBjLTUuMywxLjEtNi40LTIuNi02LjQtMi42QzIwLDQxLjYsMTguOCw0MSwxOC44LDQxYy0xLjctMS4yLDAuMS0xLjEsMC4xLTEuMWMxLjksMC4xLDIuOSwyLDIuOSwyYzEuNywyLjksNC41LDIuMSw1LjUsMS42IGMwLjItMS4yLDAuNy0yLjEsMS4yLTIuNmMtNC4yLTAuNS04LjctMi4xLTguNy05LjRjMC0yLjEsMC43LTMuNywyLTUuMWMtMC4yLTAuNS0wLjgtMi40LDAuMi01YzAsMCwxLjYtMC41LDUuMiwyIGMxLjUtMC40LDMuMS0wLjcsNC44LTAuN2MxLjYsMCwzLjMsMC4yLDQuNywwLjdjMy42LTIuNCw1LjItMiw1LjItMmMxLDIuNiwwLjQsNC42LDAuMiw1YzEuMiwxLjMsMiwzLDIsNS4xYzAsNy4zLTQuNSw4LjktOC43LDkuNCBjMC43LDAuNiwxLjMsMS43LDEuMywzLjVjMCwyLjYsMCw0LjYsMCw1LjJjMCwwLjUsMC40LDEuMSwxLjMsMC45YzcuNS0yLjYsMTMtOS43LDEzLTE4LjFDNTEsMjEuOSw0Mi41LDEzLjQsMzIsMTMuNHoiLz48L3N2Zz4= 268[gh-dl-url]: https://github.com/ksnip/ksnip/releases 269 270[sf-dt-badge]: https://img.shields.io/sourceforge/dt/ksnip.svg?logo=data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAyMDAxMDkwNC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+PHN2ZyB2ZXJzaW9uPSIxLjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjMzMHB4IiBoZWlnaHQ9IjMzMHB4IiB2aWV3Qm94PSIwIDAgMzMwMCAzMzAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij48ZyBpZD0ibGF5ZXIxMDEiIGZpbGw9IiNmZmYiIHN0cm9rZT0ibm9uZSI+IDxwYXRoIGQ9Ik0xNTI4IDMwMTkgYy0xMCAtNSAtMTggLTIwIC0xOCAtMzIgMCAtMTYgMTczIC0xOTUgNjA3IC02MjkgNTYyIC01NjIgNjA2IC02MDkgNjA1IC02MzkgLTEgLTI5IC00OSAtODEgLTQ4MSAtNTEzIC0zMjMgLTMyMyAtNDgxIC00ODggLTQ4MSAtNTAyIDAgLTIzIDE5OCAtMjI0IDIyMSAtMjI0IDE5IDAgMTIzOSAxMjIxIDEyMzkgMTI0MCAwIDggLTI5MSAzMDYgLTY0NyA2NjIgbC02NDggNjQ4IC0xOTAgMCBjLTExMCAwIC0xOTcgLTUgLTIwNyAtMTF6Ii8+IDxwYXRoIGQ9Ik02ODIgMjIwNiBjLTQwMSAtNDAwIC02MTMgLTYxOSAtNjExIC02MjkgNCAtMTggMTI2MiAtMTI4MiAxMjkxIC0xMjk4IDIzIC0xMyAzNzUgLTEyIDM5OSAxIDEwIDYgMTkgMjEgMTkgMzMgMCAxNSAtMTcyIDE5NCAtNjA0IDYyNyAtMzMzIDMzMyAtNjA1IDYxMiAtNjA2IDYyMCAtMiA4IC0yIDI0IC0xIDM1IDEgMTIgMTkzIDIxMiA0ODEgNTAwIDMwOCAzMDggNDgwIDQ4NyA0ODAgNTAwIDAgMjMgLTE5NyAyMjUgLTIyMCAyMjUgLTggMCAtMjkxIC0yNzYgLTYyOCAtNjE0eiIvPiA8cGF0aCBkPSJNMTU5MiAyMjM5IGMtMTM5IC0yMyAtMjY5IC0xMjMgLTMzNiAtMjYwIC00NiAtOTUgLTYwIC0xNjkgLTUyIC0yODkgMTAgLTE2MiA1MSAtMjU4IDE4NiAtNDMxIDEwOCAtMTM4IDEzOCAtMTk2IDE1MyAtMjg4IDEyIC04MyAyNiAtOTAgNzMgLTM4IDgxIDg2IDEzNyAxODYgMTc5IDMxNyA0MCAxMjYgNTUgMjE2IDY2IDQwMCA2IDkxIDE2IDE3NiAyMiAxOTAgMTggMzcgNTEgMzcgNzYgMSA0OCAtNjYgNTUgLTEwNiA1NSAtMjg0IDAgLTEwOSA0IC0xNjYgMTEgLTE2NCAxNiA1IDUzIDkxIDgwIDE4NCA5MSAzMTIgLTg3IDYyMCAtMzgxIDY2MyAtMzggNSAtNzEgOSAtNzQgOSAtMyAtMSAtMjkgLTUgLTU4IC0xMHoiLz4gPC9nPjwvc3ZnPg== 271[sf-dt-badge-url]: https://sourceforge.net/projects/ksnip 272 273[gh-comm-since-badge]: https://img.shields.io/github/commits-since/damirporobic/ksnip/latest.svg?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgdmlld0JveD0iMTIgMTIgNDAgNDAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0zMiwxMy40Yy0xMC41LDAtMTksOC41LTE5LDE5YzAsOC40LDUuNSwxNS41LDEzLDE4YzEsMC4yLDEuMy0wLjQsMS4zLTAuOWMwLTAuNSwwLTEuNywwLTMuMiBjLTUuMywxLjEtNi40LTIuNi02LjQtMi42QzIwLDQxLjYsMTguOCw0MSwxOC44LDQxYy0xLjctMS4yLDAuMS0xLjEsMC4xLTEuMWMxLjksMC4xLDIuOSwyLDIuOSwyYzEuNywyLjksNC41LDIuMSw1LjUsMS42IGMwLjItMS4yLDAuNy0yLjEsMS4yLTIuNmMtNC4yLTAuNS04LjctMi4xLTguNy05LjRjMC0yLjEsMC43LTMuNywyLTUuMWMtMC4yLTAuNS0wLjgtMi40LDAuMi01YzAsMCwxLjYtMC41LDUuMiwyIGMxLjUtMC40LDMuMS0wLjcsNC44LTAuN2MxLjYsMCwzLjMsMC4yLDQuNywwLjdjMy42LTIuNCw1LjItMiw1LjItMmMxLDIuNiwwLjQsNC42LDAuMiw1YzEuMiwxLjMsMiwzLDIsNS4xYzAsNy4zLTQuNSw4LjktOC43LDkuNCBjMC43LDAuNiwxLjMsMS43LDEuMywzLjVjMCwyLjYsMCw0LjYsMCw1LjJjMCwwLjUsMC40LDEuMSwxLjMsMC45YzcuNS0yLjYsMTMtOS43LDEzLTE4LjFDNTEsMjEuOSw0Mi41LDEzLjQsMzIsMTMuNHoiLz48L3N2Zz4= 274[gh-comm-since-url]: https://github.com/ksnip/ksnip/releases/tag/continuous 275 276[discord-badge]: https://img.shields.io/discord/812295724837371955.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2 277[discord-badge-url]: http://discord.ksnip.org 278 279[libera-badge]: https://img.shields.io/badge/libera.chat-%23ksnip-brightgreen.svg 280[libera-badge-url]: https://web.libera.chat/?channels=#ksnip 281