Giter Club home page Giter Club logo

ksnip's Introduction

Linux build status Windows build status MacOS build status GitHub commits (since latest release)
Translation status GitHub total downloads SourceForge total downloads Discord IRC: #ksnip on libera.chat GitHub license

Version v1.11.0

Ksnip is a Qt-based cross-platform screenshot tool that provides many annotation features for your screenshots.

ksnip

Features

Latest ksnip version contains following features:

  • Supports Linux (X11, Plasma Wayland, GNOME Wayland and xdg-desktop-portal Wayland), Windows and macOS.
  • Screenshot of a custom rectangular area that can be drawn with mouse cursor.
  • Screenshot of last selected rectangular area without selecting again.
  • Screenshot of the screen/monitor where the mouse cursor is currently located.
  • Screenshot of full-screen, including all screens/monitors.
  • Screenshot of window that currently has focus.
  • Screenshot of window under mouse cursor.
  • Screenshot with or without mouse cursor.
  • Capture mouse cursor as annotation item that can be moved and deleted.
  • Customizable capture delay for all capture options.
  • Upload screenshots directly to imgur.com in anonymous or user mode.
  • Upload screenshots via FTP in anonymous or user mode.
  • Upload screenshots via custom user defined scripts.
  • Command-line support, for capturing screenshots and saving to default location, filename and format.
  • Filename wildcards for Year ($Y), Month ($M), Day ($D), Time ($T) and Counter (multiple # characters for number with zero-leading padding).
  • Print screenshot or save it to PDF/PS.
  • Annotate screenshots with pen, marker, rectangles, ellipses, texts and other tools.
  • Annotate screenshots with stickers and add custom stickers.
  • Crop and cut out vertical/horizontal slices of images.
  • Obfuscate image regions with blur and pixelate.
  • Add effects to image (Drop Shadow, Grayscale, invert color or Border).
  • Add watermarks to captured images.
  • Global hotkeys for capturing screenshots (currently only for Windows and X11).
  • Tabs for screenshots and images.
  • Open existing images via dialog, drag-and-drop or paste from clipboard.
  • Run as single instance application (secondary instances send cli parameter to primary instance).
  • Pin screenshots in frameless windows that stay atop other windows.
  • User-defined actions for taking screenshot and post-processing.
  • OCR support through plugin (Window and Linux/Unix).
  • Many configuration options.

Supported Screenshot Types

Rect Area Last Rect Area Full Screen Current Screen Active Window Window Under Cursor Without Mouse Cursor Screenshot Portal
X11 X X X X X X
Plasma Wayland X X X
Gnome Wayland < 41 X X X X X X
xdg-desktop-portal* X
Windows X X X X X X
macOS X X X X

* xdg-desktop-portal screenshots are screenshots taken by the compositor and passed to ksnip, you will see a popup dialog that required additional confirmation, the implementation can vary depending on the compositor. Currently, Snaps and Gnome Wayland >= 41 only support xdg-desktop-portal screenshots, this is a limitation coming from the Gnome and Snaps, non-native screenshot tools are not allowed to take screenshots in any other way except through the xdg-desktop-portal.

Installing Binaries

Binaries can be downloaded from the Releases page. Currently, RPM, DEB, APT, Snap, Flatpak and AppImage for Linux, zipped EXE for Windows and APP for macOS in a DMG package are available.

Continuous build

All supported binaries are built for every pushed commit, to be found at the top of the release page. Continuous build artifacts are not fully tested and in most cases they are work in progress, so use them with caution.

Linux

Click on the item, to expand information.

AppImage

To use AppImages, make them executable and run them, no installation required.

$ chmod a+x ksnip*.AppImage
$ ./ksnip*.AppImage

More info about setting to executable can be found here.

RPM

Just install them via RPM and use.

$ rpm -Uvh ksnip*.rpm
$ ksnip
DEB

Just install them via apt and start using.

$ sudo apt install ./ksnip*.deb
$ ksnip
APT

Starting with Ubuntu 21.04 Hirsute Hippo, you can install from the official package:

$ sudo apt install ksnip

For older Ubuntu versions, you can use @nemonein's unofficial PPA:

sudo add-apt-repository ppa:nemonein/ksnip
sudo apt update
sudo apt install ksnip

For Debian 11 and later releases, you can install from the official package:

$ sudo apt install ksnip

For Debian 10 and Debian 9, ksnip is available via Debian Backports. Please enable bullseye-backports and buster-backports repo for Debian 10 and Debian 9 respectively before installing using sudo apt install ksnip.

ArchLinux

Ksnip is in the Extra repository, so you can install it directly via pacman.

$ sudo pacman -S ksnip

If you want to build from the GIT repository, you can use the AUR package (make sure you build the necessary dependencies too).

$ yay -S ksnip-git kimageannotator-git kcolorpicker-git
Snap

The usual method for Snaps, will install the latest version:

$ sudo snap install ksnip

The continuous build version is also available as edge, in order to install it you need to provide the edge flag:

$ sudo snap install ksnip --edge

Snap 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:

$ snap connect ksnip:network-observe
$ snap connect ksnip:network-manager-observe

If you need to save screenshots to a removable media, the following additional connection is required:

$ snap connect ksnip:removable-media

This only needs to be done once and connects some Snap plugs which are currently not auto-connected.

Get it from the Snap Store

Flatpak

The usual method for Flatpaks will install the latest version:

$ flatpak install flathub org.ksnip.ksnip

Then just start it:

$ flatpak run org.ksnip.ksnip

Download on Flathub

Windows

MSI

The MSI installer installs ksnip on your system and is the preferred way for installing ksnip under Windows.

EXE

The EXE file with all required dependencies comes in a zipped package, which just need to be unzipped with your favorite unpacking tool. Ksnip can then be started by just double-clicking ksnip.exe.

macOS

APP

The app file comes in a DMG package which needs to be opened, and the ksnip.app file needs to be dragged and dropped into the "Application" folder. After that the application can be started by double clicking ksnip.app

Homebrew Cask

Just install via Homebrew and start using from your "Applications" folder.

$ brew install --cask ksnip

Plugins

ksnip functionality can be extended by using plugins that need to be downloaded separately and installed or unpacked, depending on the environment. Currently, under Options > Settings > Plugins a plugin detection can be triggered either in the default location(s) or by providing a search path where to look for plugins. After clicking on "Detect", ksnip searches for known plugins and when found will list the name and version.

Default search locations

Windows: plugins directory, next to ksnip.exe
Linux/Unix: /usr/local/lib, /usr/local/lib64, /usr/lib, /usr/lib64

Version selection

The plugin must match the Qt version and build type of ksnip. If you have a ksnip version that uses Qt 15.5.X and was build in DEBUG then the plugin must match the same criteria. In most cases the latest ksnip and plugin version will be using the same Qt version, the only think that you need to watch out for is to not mix DEBUG and RELEASE build.

OCR (Window and Linux/Unix)

ksnip supports OCR by using the ksnip-plugin-ocr which utilizes Tesseract to convert Image to text. When the OCR plugin was loaded, the OCR option becomes available under Options > OCR. The latest plugin version can be found here.

Dependencies

ksnip depends on kImageAnnotator and kColorPicker which needs to be installed before building ksnip from source. Installation instructions can be found on the Github pages.

Building from source

  1. Get the latest release from GitHub by cloning the repo: $ git clone https://github.com/ksnip/ksnip
  2. Change to repo directory: $ cd ksnip
  3. Make new build directory and enter it: $ mkdir build && cd build
  4. Create the makefile and build the project: $ cmake .. && make
  5. Now install the application, eventually you need to run it with sudo: $ sudo make install
  6. Run the application: $ ksnip

If you are using Archlinux, you may prefer to build ksnip through AUR.

Known Issues

Expand

X11

  1. Snipping area with transparent background doesn't work when compositor is turned off, freeze background is used in that case.

macOS

  1. Snipping area with transparent background doesn't work, freeze background is always used. Issue #151
  2. 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
  3. Mouse cursor is always captured. Issue #153

Wayland

  1. Portal and Native Screenshots not working under KDE Plasma >= 5.80. The issue is coming from a recent change in KDE Plasma that prevents access to DBUS Interfaces responsible for taking screenshots. This issue is going to be fixed in future Plasma releases for the Portal Screenshots. Workaround for making the Portal Screenshots work is adding the string X-KDE-DBUS-Restricted-Interfaces=org.kde.kwin.Screenshot to the /usr/share/applications/org.freedesktop.impl.portal.desktop.kde.desktop file and then restarting. Don't forget to enforce Portal screenshots in settings. Issue #424
  2. Under Gnome Wayland copying images to clipboard and then pasting them somewhere might not work. This happens currently with native Wayland. A workaround is using XWayland by starting ksnip like this QT_QPA_PLATFORM=xcb /usr/bin/ksnip or switch to XWayland completely by exporting that variable export QT_QPA_PLATFORM=xcb. Issue #416
  3. Native Wayland screenshots are no longer possible with Gnome >= 41. The Gnome developers have forbidden access to the DBus interface that provides Screenshots under Wayland and leave non Gnome application only the possibility to use xdg-desktop-portal screenshots. Security comes before usability for the Gnome developers. There is an open feature request to only grant screenshot permission once instead of for every screenshot, help us raise awareness for such feature here.
  4. Global Hotkeys don't work under Wayland, this is due to the secure nature of Wayland. As long as compositor developers don't provide an interface for us to work with Global Hotkeys, does won't be supported.

Screen Scaling (HiDPI)

  1. Qt is having issues with screen scaling, it can occur that the Snipping area is incorrectly positioned. As a workaround the Snipping Area position or offset can be configured so that it's placed correctly. Issue [#276]

Snap

  1. Drag and Drop might not be working when ksnip or the application that you drag and drop from/to is installed as snap. the reason being that the image is shared via the temp directory which in case of snaps are restricted and every application can only see their own files or files of the user. The workaround for this is to change the temp directory location to a user owned directory like home, document or download directory via Options > Settings > Application > Temp Directory.

Discussion & Community

If you have general questions, ideas or just want to talk about ksnip, please join our Discord or IRC server.

Contribution

Any contribution is welcome, be it code, translations or other things. Currently, we need:

  • Developers for writing code and fixing bugs for linux, windows and macOS. We have only one developer and the feature requests and bugs are pilling up.
  • Testers for testing releases on different OS and Distros.
  • Docu writers, there are a lot of features that the casual users don't know about.
  • Bug reporting, Please report any bugs or feature requests related to the annotation editor on the kImageAnnotator GitHub page under the "Issue" section. All other bugs or feature requests can be reported on the ksnip GitHub page under the "Issue" section.
  • Translations - Weblate is used for translations. For translating annotator-related texts, please refer to kImageAnnotator
Translation status

Translation status

Donation

ksnip 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. If you want to help or just want to appreciate the work being done by treating developers to a beer or coffee, you can do that here, donations are always welcome :)

In order to improve our MacOS support, we are trying to collect some money to buy a MacBook, you can donate here.

Also in crypto:
BTC: bc1q6cke457fk8qhxxacl4nu5q2keudtdukrqe2gx0
ETH: 0xbde87a83427D61072055596e7a746CeC5316253C
BNB: bnb1fmy0vupsv23s36sejp07jetj6exj3hqeewkj6d

ksnip's People

Contributors

adriaandegroot avatar albanobattistella avatar amalvarenga avatar amenk avatar antrrax avatar comradekingu avatar damirporobic avatar dglent avatar eson57 avatar fnkabit avatar fnkhz avatar friedrichfroebel avatar hosiet avatar hprmedina avatar linxon avatar lvaskz avatar lyzardking avatar mahtiankka avatar milotype avatar murznn avatar santossi avatar sbivol avatar shilin-da avatar sr093906 avatar tolstovka avatar vistaus avatar waldist avatar wcxu21 avatar weblate avatar yurchor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ksnip's Issues

Enhancement: Add more option to crop window

Adding text boxes to crop window for x and y position of the crop frame and width and height text box so that instead of always drag and dropping the crop window you could just type in numbers that you required. With this goes a Crop and Cancel button in addition to hitting return and escape.

Implement: More drawing tools

Currently, there are no Qt-based screenshot tools that have the ability to draw arrows or rectangles over captured areas. More than that, even Shutter, perhaps the most feature-rich screenshot tool, has such features ugly hidden in its standalone editor.
In contrast, KSnip is great! But it would be totally awesome if you could add more basic drawing tools: lines, rectangles, circles, arrows and so on.

Implement: Add new color picker for fill and outline

Currently we can only set the color in the settings window, it would be nice to have two color pickers one for outline color and one for fill color, depending on which tool is selected eventually only one of the options will be available and the other not, for example when selecting pen, there will be no fill.
Eventually something like this:
image

Feature-Request: Please make KSnip more feature-rich

Just like the image editors in Shutter and Screencloud, KSnip would benefit from things like:

  • auto-numbered circles;
  • auto-blur selected areas to hide away sensitive data;
  • plain arrows;
  • bending arrows with configuration options;
  • full-featured eraser.

Hope it's not too much :)
Have a nice day!

Bug: Painting cursor shown when selecting rect area for capture

After capturing an image and then again selecting new capture (with delay), after the ksnip window has disappeared and while waiting for the delay to finish, the cursor is incorrectly shown as paint cursor, probably because the window in background is just invisible but still detecting the cursor hovering over the location where ksnip was.

Move Ksnip to Qt5

Though the current Qt4-based app builds okay, maybe it's time for the transition to the new Qt5?

Rectangular area screenshot is shifted to the right of actual selected area.

I selected an area that was the exact width of an opened window, but the actual screenshot I got as the output was of a similar sized rectangle shifted a little to the right. See screenshot below, the left side of window is cut off, and on the right of the screenshot I got a part of the desktop that I didn't select.

ksnip_20171127

Could it be related to your fix of the #34 problem?

Using: MX17Beta2 (Debian Stretch) on XFCE, no compositing. I am testing your latest alpha as announced on the MX Linux forum: https://forum.mxlinux.org/viewtopic.php?p=427379#p427379

Implement: Option to smooth-out drawn paths

Paths are currently drawn as as several connected lines, when the users draws fast the lines look edgy. We need eventually an option to make the line smooth this this feature should be option as it can be frustrating when trying to draw a precise line. Eventually turning on and off under the settings.

Add option to run last or default capture on startup

Option that could be enabled and disabled via settings which would allow to automatically start the default or last used capture mode right after starting, without needing to trigger it via shortcut or click on action bar.

Some icons not shown when running on Ubuntu

I've noticed that when ksnip is installed on Ubuntu, some of the icons are not show, which is caused by using KDE Theme icons. I will create a new set of custom icons so we can use our own custom icons.

Dev version 1.3 fails to build

It says:

[ 51%] Building CXX object CMakeFiles/ksnip.dir/src/painter/PainterRect.cpp.o
/home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp: In function 'qreal {anonymous}::smallesLenght(qreal, qreal)':
/home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:26:32: error: call of overloaded 'abs(qreal&)' is ambiguous
     qreal l = (std::abs(lenght1) < std::abs(lenght2)) ? std::abs(lenght1) : std::abs(lenght2);
                                ^
In file included from /usr/include/c++/5/cstdlib:72:0,
                 from /usr/include/c++/5/bits/stl_algo.h:59,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/stdlib.h:774:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/5/bits/stl_algo.h:59:0,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/c++/5/cstdlib:166:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^
/usr/include/c++/5/cstdlib:174:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^
/home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:26:52: error: call of overloaded 'abs(qreal&)' is ambiguous
     qreal l = (std::abs(lenght1) < std::abs(lenght2)) ? std::abs(lenght1) : std::abs(lenght2);
                                                    ^
In file included from /usr/include/c++/5/cstdlib:72:0,
                 from /usr/include/c++/5/bits/stl_algo.h:59,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/stdlib.h:774:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/5/bits/stl_algo.h:59:0,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/c++/5/cstdlib:166:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^
/usr/include/c++/5/cstdlib:174:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^
/home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:26:73: error: call of overloaded 'abs(qreal&)' is ambiguous
     qreal l = (std::abs(lenght1) < std::abs(lenght2)) ? std::abs(lenght1) : std::abs(lenght2);
                                                                         ^
In file included from /usr/include/c++/5/cstdlib:72:0,
                 from /usr/include/c++/5/bits/stl_algo.h:59,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/stdlib.h:774:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/5/bits/stl_algo.h:59:0,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/c++/5/cstdlib:166:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^
/usr/include/c++/5/cstdlib:174:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^
/home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:26:93: error: call of overloaded 'abs(qreal&)' is ambiguous
     qreal l = (std::abs(lenght1) < std::abs(lenght2)) ? std::abs(lenght1) : std::abs(lenght2);
                                                                                             ^
In file included from /usr/include/c++/5/cstdlib:72:0,
                 from /usr/include/c++/5/bits/stl_algo.h:59,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/stdlib.h:774:12: note: candidate: int abs(int)
 extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
            ^
In file included from /usr/include/c++/5/bits/stl_algo.h:59:0,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/QtCore/qglobal.h:68,
                 from /usr/include/QtGui/qgraphicsitem.h:45,
                 from /usr/include/QtGui/QGraphicsItem:1,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterBaseItem.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.h:23,
                 from /home/atolstoy/ksnip-1.3.0/src/painter/PainterRect.cpp:20:
/usr/include/c++/5/cstdlib:166:3: note: candidate: long int std::abs(long int)
   abs(long __i) { return __builtin_labs(__i); }
   ^
/usr/include/c++/5/cstdlib:174:3: note: candidate: long long int std::abs(long long int)
   abs(long long __x) { return __builtin_llabs (__x); }
   ^
CMakeFiles/ksnip.dir/build.make:353: recipe for target 'CMakeFiles/ksnip.dir/src/painter/PainterRect.cpp.o' failed
make[2]: *** [CMakeFiles/ksnip.dir/src/painter/PainterRect.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/ksnip.dir/all' failed
make[1]: *** [CMakeFiles/ksnip.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

I used GCC 4.8, 5 and 6 but it doesn't affect the issue.

Ksnip 1.3.0 fails to build - due to missing cmath library

Using Slackware-current 64-bit, Plasma 5.9.x

ksnip fails to build with an error. This is the compilation output in the relevant part:

[ 43%] Building CXX object CMakeFiles/ksnip.dir/src/painter/PainterBaseItem.cpp.o
[ 46%] Building CXX object CMakeFiles/ksnip.dir/src/painter/PainterPath.cpp.o
/home/eduardo/build/slackbuilds/ksnip/ksnip-1.3.0/src/painter/PainterPath.cpp: In function ‘float {anonymous}::distance(const QPointF&, const QPointF&)’:
/home/eduardo/build/slackbuilds/ksnip/ksnip-1.3.0/src/painter/PainterPath.cpp:33:25: error: ‘sqrtf’ was not declared in this scope
     return sqrtf(hd + vd);
                         ^
make[2]: *** [CMakeFiles/ksnip.dir/build.make:337: CMakeFiles/ksnip.dir/src/painter/PainterPath.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/ksnip.dir/all] Error 2
make: *** [Makefile:128: all] Error 2

Ksnip 1.3.1: transparency in selection does not work

Using Slackware-current, Ksnip 1.3.1., Plasma 5.

When trying to use Ksnip and pressing the 'New" button, the screen goes full dark instead of darkened but transparent. Dragging the mouse button produces the screenshot area in red lines but there's nothing to be seeen.

However, the screen grabbing operation is successful. That is, I can get the contents of the screen grabbing area, even though I cannot see what is being grabbed at the moment when the operation is being performed. Thanks for any help on this!

Enhance: Add option to switch between default screenshot filename and custom

Currently the custom filename which is set under settings -> application, is only used for screenshots taken via CLI, but the path and extensions are used from those settings. It would be useful to provide an option to chose which one to use, maybe some users would like to use the custom name for all screenshots.

Implment: Bring to fron and send to back

Currently, all painting items are shown in order as they are draw, the latest item being drawn over the older items. We need here an option to change this order.

This could be implemented by providing a context menu two actions to achieve this task.

Add rect capture to command line

Currently we can't capture rect region from command line, this was due to implementation limitation and should be changed for next release.

Context menu for paint items

Eventually there should be an option to change features of already drawn items, like color, size and fill. This could be achieved by providing a context menu that let's the user change those things.
Additionally to changing existing features, the context menu could also host option to bring the item to front or send it to back (see issue #31 ) and also provide an option to delete an item from there.

Error: ‘sqrtf’ was not declared in this scope

I'm trying to compile ksnip on Ubuntu 16.10 and 17.04 , but I'm getting:

[ 46%] Building CXX object CMakeFiles/ksnip.dir/src/painter/PainterPath.cpp.o
/usr/bin/c++ -I/<>/obj-x86_64-linux-gnu -I/<> -I/usr/include/qt4/QtDesigner -I/usr/include/qt4/QtDeclarative -I/usr/include/qt4/QtScriptTools -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtHelp -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtSvg -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/share/qt4/mkspecs/default -I/usr/include/qt4 -g -O2 -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -o CMakeFiles/ksnip.dir/src/painter/PainterPath.cpp.o -c /<>/src/painter/PainterPath.cpp
/<>/src/painter/PainterPath.cpp: In function ‘float {anonymous}::distance(const QPointF&, const QPointF&)’:
/<>/src/painter/PainterPath.cpp:33:25: error: ‘sqrtf’ was not declared in this scope
return sqrtf(hd + vd);
^
CMakeFiles/ksnip.dir/build.make:339: recipe for target 'CMakeFiles/ksnip.dir/src/painter/PainterPath.cpp.o' failed

Do we need <math.h> somewhere in PainterPath.cpp?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.