nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 cmake,
5 fetchFromGitHub,
6 fetchpatch,
7 libsForQt5,
8}:
9
10stdenv.mkDerivation (finalAttrs: {
11 pname = "ksnip";
12 version = "1.10.1";
13
14 src = fetchFromGitHub {
15 owner = "ksnip";
16 repo = "ksnip";
17 tag = "v${finalAttrs.version}";
18 hash = "sha256-n7YwDXd73hyrzb6L8utZFuHh9HnjVtkU6CC4jfWPj/I=";
19 };
20
21 patches = [
22 # Fix build with latest kImageAnnotator
23 (fetchpatch {
24 url = "https://github.com/ksnip/ksnip/commit/76f4b381971eead6ff31b8bf3bb64bb5717469c3.patch";
25 hash = "sha256-JWoI974qDNZIzr/8oksI8m6g3XNWEaQRGsqSfvQrmao=";
26 })
27 ];
28
29 nativeBuildInputs = [
30 cmake
31 ]
32 ++ (with libsForQt5; [
33 extra-cmake-modules
34 wrapQtAppsHook
35 qttools
36 ]);
37
38 buildInputs = with libsForQt5; [
39 kcolorpicker
40 kimageannotator
41 qtsvg
42 qtx11extras
43 ];
44
45 meta = {
46 homepage = "https://github.com/ksnip/ksnip";
47 description = "Cross-platform screenshot tool with many annotation features";
48 longDescription = ''
49 Features:
50
51 - Supports Linux (X11, Plasma Wayland, GNOME Wayland and xdg-desktop-portal Wayland), Windows and macOS.
52 - Screenshot of a custom rectangular area that can be drawn with mouse cursor.
53 - Screenshot of last selected rectangular area without selecting again.
54 - Screenshot of the screen/monitor where the mouse cursor is currently located.
55 - Screenshot of full-screen, including all screens/monitors.
56 - Screenshot of window that currently has focus.
57 - Screenshot of window under mouse cursor.
58 - Screenshot with or without mouse cursor.
59 - Capture mouse cursor as annotation item that can be moved and deleted.
60 - Customizable capture delay for all capture options.
61 - Upload screenshots directly to imgur.com in anonymous or user mode.
62 - Upload screenshots via custom user defined scripts.
63 - Command-line support, for capturing screenshots and saving to default location, filename and format.
64 - Filename wildcards for Year ($Y), Month ($M), Day ($D), Time ($T) and Counter (multiple # characters for number with zero-leading padding).
65 - Print screenshot or save it to PDF/PS.
66 - Annotate screenshots with pen, marker, rectangles, ellipses, texts and other tools.
67 - Annotate screenshots with stickers and add custom stickers.
68 - Obfuscate image regions with blur and pixelate.
69 - Add effects to image (Drop Shadow, Grayscale, invert color or Border).
70 - Add watermarks to captured images.
71 - Global hotkeys for capturing screenshots (currently only for Windows and X11).
72 - Tabs for screenshots and images.
73 - Open existing images via dialog, drag-and-drop or paste from clipboard.
74 - Run as single instance application (secondary instances send cli parameter to primary instance).
75 - Pin screenshots in frameless windows that stay atop other windows.
76 - User-defined actions for taking screenshot and post-processing.
77 - Many configuration options.
78 '';
79 license = lib.licenses.gpl2Plus;
80 maintainers = with lib.maintainers; [ x3ro ];
81 platforms = lib.platforms.linux;
82 mainProgram = "ksnip";
83 };
84})