gnu: sbcl-cl-cffi-gtk: Update to 20200417.
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
5 ;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2013, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
7 ;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
8 ;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
9 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
11 ;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
12 ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
13 ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
14 ;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
16 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
17 ;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
18 ;;; Copyright © 2016 Petter <petter@mykolab.ch>
19 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
20 ;;; Copyright © 2017 ng0 <ng0@n0.is>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
22 ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
23 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
24 ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
25 ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
26 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
27 ;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
28 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
29 ;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
30 ;;; Copyright © 2019 Josh Holland <josh@inv.alid.pw>
31 ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
32 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
33 ;;; Copyright © 2020 David Wilson <david@daviwil.com>
34 ;;; Copyright © 2020 Ivan Vilata i Balaguer <ivan@selidor.net>
35 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
36 ;;; Copyright © 2020 Damien Cassou <damien@cassou.me>
37 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
38 ;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
39 ;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
40 ;;;
41 ;;; This file is part of GNU Guix.
42 ;;;
43 ;;; GNU Guix is free software; you can redistribute it and/or modify it
44 ;;; under the terms of the GNU General Public License as published by
45 ;;; the Free Software Foundation; either version 3 of the License, or (at
46 ;;; your option) any later version.
47 ;;;
48 ;;; GNU Guix is distributed in the hope that it will be useful, but
49 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
50 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51 ;;; GNU General Public License for more details.
52 ;;;
53 ;;; You should have received a copy of the GNU General Public License
54 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
55
56 (define-module (gnu packages xdisorg)
57 #:use-module ((guix licenses) #:prefix license:)
58 #:use-module (guix packages)
59 #:use-module (guix download)
60 #:use-module (guix git-download)
61 #:use-module (guix utils)
62 #:use-module (guix build-system cmake)
63 #:use-module (guix build-system gnu)
64 #:use-module (guix build-system glib-or-gtk)
65 #:use-module (guix build-system meson)
66 #:use-module (guix build-system python)
67 #:use-module (guix build-system scons)
68 #:use-module (gnu packages)
69 #:use-module (gnu packages documentation)
70 #:use-module (gnu packages admin)
71 #:use-module (gnu packages base)
72 #:use-module (gnu packages algebra)
73 #:use-module (gnu packages autotools)
74 #:use-module (gnu packages check)
75 #:use-module (gnu packages compression)
76 #:use-module (gnu packages image)
77 #:use-module (gnu packages pkg-config)
78 #:use-module (gnu packages flex)
79 #:use-module (gnu packages freedesktop)
80 #:use-module (gnu packages gawk)
81 #:use-module (gnu packages gettext)
82 #:use-module (gnu packages gl)
83 #:use-module (gnu packages glib)
84 #:use-module (gnu packages gnome)
85 #:use-module (gnu packages haskell-xyz)
86 #:use-module (gnu packages icu4c)
87 #:use-module (gnu packages man)
88 #:use-module (gnu packages maths)
89 #:use-module (gnu packages m4)
90 #:use-module (gnu packages ncurses)
91 #:use-module (gnu packages perl)
92 #:use-module (gnu packages python)
93 #:use-module (gnu packages python-xyz)
94 #:use-module (gnu packages linux)
95 #:use-module (gnu packages gl)
96 #:use-module (gnu packages guile)
97 #:use-module (gnu packages xml)
98 #:use-module (gnu packages gtk)
99 #:use-module (gnu packages qt)
100 #:use-module (gnu packages xorg)
101 #:use-module (gnu packages fontutils)
102 #:use-module (gnu packages bison)
103 #:use-module (ice-9 match))
104
105 ;; packages outside the x.org system proper
106
107 (define-public arandr
108 (package
109 (name "arandr")
110 (version "0.1.10")
111 (source (origin
112 (method url-fetch)
113 (uri (string-append "https://christian.amsuess.com/tools/arandr"
114 "/files/arandr-" version ".tar.gz"))
115 (sha256
116 (base32
117 "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v"))
118 (modules '((guix build utils)))
119 (snippet
120 '(begin
121 ;; Do not record a timestamp and file name in gzipped man
122 ;; pages (this is equivalent to 'gzip --no-name'.)
123 (substitute* "setup.py"
124 (("gzip\\.open\\(gzfile, 'w', 9\\)")
125 "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))
126 #t))))
127 (build-system python-build-system)
128 (arguments
129 `(#:phases
130 (modify-phases %standard-phases
131 (add-before 'build 'configure
132 (lambda* (#:key inputs #:allow-other-keys)
133 (substitute* "screenlayout/xrandr.py"
134 (("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
135 "/bin/xrandr\"")))
136 #t))
137 (add-after 'install 'wrap-gi-typelib
138 (lambda* (#:key inputs outputs #:allow-other-keys)
139 (let ((out (assoc-ref outputs "out"))
140 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
141 (wrap-program (string-append out "/bin/arandr")
142 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
143 #t)))
144 #:tests? #f)) ;no tests
145 (inputs `(("gtk+" ,gtk+)
146 ("pycairo" ,python-pycairo)
147 ("pygobject" ,python-pygobject)
148 ("xrandr" ,xrandr)))
149 (native-inputs `(("gettext" ,gettext-minimal)
150 ("python-docutils" ,python-docutils)))
151 (home-page "https://christian.amsuess.com/tools/arandr/")
152 (synopsis "Another RandR graphical user interface")
153 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
154 (description "ARandR is designed to provide a simple visual front end for
155 the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
156 shown graphically and can be changed in a drag-and-drop way. Configurations
157 are saved as executable shell scripts which can be loaded without using this
158 program.")
159 (license license:gpl3+)))
160
161 (define-public autorandr
162 (package
163 (name "autorandr")
164 (version "1.9")
165 (home-page "https://github.com/phillipberndt/autorandr")
166 (source
167 (origin
168 (method git-fetch)
169 (uri (git-reference
170 (url home-page)
171 (commit version)))
172 (file-name (git-file-name name version))
173 (sha256
174 (base32 "1bb0l7fcm5lcx9y02zdxv7pfdqf4v4gsc5br3v1x9gzjvqj64l7n"))))
175 (build-system python-build-system)
176 (inputs
177 `(("xrandr" ,xrandr)
178 ("libxcb" ,libxcb)))
179 (arguments
180 `(#:phases
181 (modify-phases %standard-phases
182 (add-before 'build 'configure
183 (lambda* (#:key inputs outputs #:allow-other-keys)
184 (let ((xrandr (string-append (assoc-ref inputs "xrandr")
185 "/bin/xrandr")))
186 (substitute* "contrib/etc/xdg/autostart/autorandr.desktop"
187 (("/usr") (assoc-ref outputs "out")))
188 (substitute* "autorandr.py"
189 (("popen\\(\"xrandr") (string-append "popen(\"" xrandr))
190 (("\\[\"xrandr") (string-append "[\"" xrandr))))
191 #t))
192 (add-after 'install 'install-contrib
193 (lambda* (#:key outputs #:allow-other-keys)
194 (invoke "make"
195 (string-append "DESTDIR=" (assoc-ref outputs "out"))
196 "PREFIX="
197 "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
198 "install_manpage"
199 "install_bash_completion"
200 "install_launcher"
201 "install_autostart_config"))))))
202 (synopsis "Auto-detect connected displays and load appropriate setup")
203 (description "Autorandr wraps around xrandr to help with X11
204 multi-screen configuration management. It allows the user to create profiles
205 for various multi-screen setups. Autorandr automatically detects the profiles
206 that can be activated based on the connected hardware. Hook scripts can be
207 used to further tweak the behaviour of the different profiles.")
208 (license license:gpl3+)))
209
210 (define-public bemenu
211 (package
212 (name "bemenu")
213 (version "0.2.0")
214 (source
215 (origin
216 (method git-fetch)
217 (uri (git-reference
218 (url "https://github.com/Cloudef/bemenu.git")
219 (commit version)))
220 (file-name (git-file-name name version))
221 (sha256
222 (base32 "0piax49az5kp96r1g6dcgj87fi6p4jl286wlkxsdvljzpkn8q6gv"))))
223 (build-system cmake-build-system)
224 (arguments
225 '(#:configure-flags '("-DBEMENU_WAYLAND_RENDERER=ON")))
226 (inputs
227 `(("cairo" ,cairo)
228 ("libx11" ,libx11)
229 ("libxkbcomon" ,libxkbcommon)
230 ("libxinerama" ,libxinerama)
231 ("ncurses" ,ncurses)
232 ("pango" ,pango)
233 ("wayland" ,wayland)
234 ("wayland-protocols" ,wayland-protocols)))
235 (native-inputs
236 `(("doxygen" ,doxygen)
237 ("pkg-config" ,pkg-config)))
238 (home-page "https://github.com/Cloudef/bemenu")
239 (synopsis "Dynamic menu library and client program inspired by dmenu")
240 (description
241 "bemenu is a dynamic menu which allows the user to flexibly select from a
242 list of options (usually programs to launch). It renders the menu graphically
243 with X11 or Wayland, or in a text terminal with ncurses.")
244 (license (list license:gpl3+ ; client program[s] and other sources
245 license:lgpl3+)))) ; library and bindings
246
247 (define-public copyq
248 (package
249 (name "copyq")
250 (version "3.9.3")
251 (source (origin
252 (method git-fetch)
253 (uri (git-reference
254 (url "https://github.com/hluk/CopyQ.git")
255 (commit (string-append "v" version))))
256 (file-name (git-file-name name version))
257 (sha256
258 (base32
259 "0wlwq9xg8rzsbj0b29z358k4mbrqy04iraa8x0p26pa95yskgcma"))))
260 (build-system cmake-build-system)
261 (arguments
262 `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
263 #:tests? #f)) ; Test suite is a rather manual process.
264 (inputs
265 `(("qtbase" ,qtbase)
266 ("qtscript" ,qtscript)
267 ("qtsvg" ,qtsvg)
268 ("qtx11extras" ,qtx11extras)))
269 (synopsis "Clipboard manager with advanced features")
270 (description "CopyQ is clipboard manager with editing and scripting
271 features. CopyQ monitors system clipboard and saves its content in customized
272 tabs. Saved clipboard can be later copied and pasted directly into any
273 application.")
274 (home-page "https://hluk.github.io/CopyQ/")
275 (license license:gpl3+)))
276
277 (define-public xclip
278 (package
279 (name "xclip")
280 (version "0.13")
281 (source
282 (origin
283 (method git-fetch)
284 (uri (git-reference
285 (url "https://github.com/astrand/xclip.git")
286 (commit version)))
287 (file-name (git-file-name name version))
288 (sha256
289 (base32
290 "0q0hmvcjlv8arhh1pzhja2wglyj6n7z209jnpnzd281kqqv4czcs"))))
291 (build-system gnu-build-system)
292 (arguments
293 '(#:tests? #f)) ;there is no test suite
294 (native-inputs
295 `(("autoconf" ,autoconf)
296 ("automake" ,automake)))
297 (inputs `(("libxmu" ,libxmu)
298 ("libxt" ,libxt)))
299 (home-page "https://github.com/astrand/xclip")
300 (synopsis "Command line interface to X11 clipboard")
301 (description "Xclip is a command line interface to the X11 clipboard. It
302 can also be used for copying files, as an alternative to sftp/scp, thus
303 avoiding password prompts when X11 forwarding has already been setup.")
304 (license license:gpl2+)))
305
306 (define-public libxkbcommon
307 (package
308 (name "libxkbcommon")
309 (version "0.10.0")
310 (source (origin
311 (method url-fetch)
312 (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
313 version ".tar.xz"))
314 (sha256
315 (base32
316 "1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
317 (build-system meson-build-system)
318 (inputs
319 `(("libx11" ,libx11)
320 ("libxcb" ,libxcb)
321 ("wayland" ,wayland)
322 ("wayland-protocols" ,wayland-protocols)
323 ("xkeyboard-config" ,xkeyboard-config)))
324 (native-inputs
325 `(("bison" ,bison)
326 ("doxygen" ,doxygen)
327 ("pkg-config" ,pkg-config)))
328 (arguments
329 `(#:configure-flags
330 (list (string-append "-Dxkb-config-root="
331 (assoc-ref %build-inputs "xkeyboard-config")
332 "/share/X11/xkb")
333 (string-append "-Dx-locale-root="
334 (assoc-ref %build-inputs "libx11")
335 "/share/X11/locale"))))
336 (home-page "https://xkbcommon.org/")
337 (synopsis "Library to handle keyboard descriptions")
338 (description "Xkbcommon is a library to handle keyboard descriptions,
339 including loading them from disk, parsing them and handling their
340 state. It is mainly meant for client toolkits, window systems, and other
341 system applications; currently that includes Wayland, kmscon, GTK+, Qt,
342 Clutter, and more. Despite the name, it is not currently used by anything
343 X11 (yet).")
344 (license (license:x11-style "file://COPYING"
345 "See 'COPYING' in the distribution."))))
346
347 (define-public libfakekey
348 (package
349 (name "libfakekey")
350 (version "0.3")
351 (source
352 (origin
353 (method git-fetch)
354 (uri (git-reference
355 (url "https://git.yoctoproject.org/git/libfakekey")
356 (commit version)))
357 (file-name (git-file-name name version))
358 (sha256
359 (base32 "1jw1d4wc1ysiijirc7apnz3sryrxbl9akgb92mh06dvfkz2nblj0"))))
360 (build-system gnu-build-system)
361 (arguments
362 `(#:make-flags (list "AM_LDFLAGS=-lX11")
363 #:phases
364 (modify-phases %standard-phases
365 (replace 'bootstrap
366 ;; ./autogen.sh calls ./configure before shebangs have been patched.
367 (lambda _
368 (invoke "autoreconf" "-vfi"))))))
369 (native-inputs
370 `(("pkg-config" ,pkg-config)
371
372 ;; For bootstrapping from git.
373 ("autoconf" ,autoconf)
374 ("automake" ,automake)
375 ("libtool" ,libtool)))
376 (inputs
377 `(("libxtst" ,libxtst)
378 ("libx11" ,libx11)))
379 (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
380 (synopsis "X virtual keyboard library")
381 (description
382 "Libfakekey is a virtual keyboard library for X.")
383 (license license:gpl2)))
384
385 (define-public xdotool
386 (package
387 (name "xdotool")
388 (version "3.20160805.1")
389 (source
390 (origin
391 (method url-fetch)
392 (uri (string-append
393 "https://github.com/jordansissel/xdotool/releases/download/v"
394 version "/xdotool-" version ".tar.gz"))
395 (sha256
396 (base32
397 "1a6c1zr86zb53352yxv104l76l8x21gfl2bgw6h21iphxpv5zgim"))))
398 (build-system gnu-build-system)
399 (arguments
400 '(#:tests? #f ; Test suite requires a lot of black magic
401 #:phases
402 (modify-phases %standard-phases
403 (replace 'configure
404 (lambda* (#:key outputs #:allow-other-keys #:rest args)
405 (let ((out (assoc-ref outputs "out")))
406 (mkdir-p (string-append out "/lib"))
407 (setenv "PREFIX" out)
408 (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
409 (setenv "CC" "gcc")
410 #t))))))
411 (native-inputs `(("perl" ,perl))) ; for pod2man
412 (inputs `(("libx11" ,libx11)
413 ("libxext" ,libxext)
414 ("libxi" ,libxi)
415 ("libxinerama" ,libxinerama)
416 ("libxtst" ,libxtst)
417 ("libxkbcommon" ,libxkbcommon)))
418 (home-page "https://www.semicomplete.com/projects/xdotool/")
419 (synopsis "Fake keyboard/mouse input, window management, and more")
420 (description "Xdotool lets you simulate keyboard input and mouse activity,
421 move and resize windows, etc. It does this using X11's XTEST extension and
422 other Xlib functions. Additionally, you can search for windows and move,
423 resize, hide, and modify window properties like the title. If your window
424 manager supports it, you can use xdotool to switch desktops, move windows
425 between desktops, and change the number of desktops.")
426 (license license:bsd-3)))
427
428 (define-public xeyes
429 (package
430 (name "xeyes")
431 (version "1.1.2")
432 (source
433 (origin
434 (method url-fetch)
435 (uri (string-append "https://www.x.org/releases/individual/app/"
436 name "-" version ".tar.bz2"))
437 (sha256
438 (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
439 (build-system gnu-build-system)
440 (inputs
441 `(("libxext" ,libxext)
442 ("libxmu" ,libxmu)
443 ("libxrender" ,libxrender)
444 ("libxt" ,libxt)))
445 (native-inputs
446 `(("pkg-config" ,pkg-config)))
447 (home-page "https://www.x.org/") ; no dedicated Xeyes page exists
448 (synopsis "Follow-the-mouse X demo")
449 (description "Xeyes is a demo program for x.org. It shows eyes
450 following the mouse.")
451 (license license:x11)))
452
453
454 (define-public pixman
455 (package
456 (name "pixman")
457 (version "0.38.4")
458 (source (origin
459 (method url-fetch)
460 (uri (string-append
461 "https://www.cairographics.org/releases/pixman-"
462 version ".tar.gz"))
463 (sha256
464 (base32
465 "1ryxzdf048x7wsx4dlvrr1p00gzwfs7lybnhgc7ygbj0dvyxcrns"))
466 (patches (search-patches "pixman-CVE-2016-5296.patch"))))
467 (build-system gnu-build-system)
468 (inputs
469 `(("libpng" ,libpng)
470 ("zlib" ,zlib)))
471 (native-inputs
472 `(("pkg-config" ,pkg-config)))
473 (home-page "http://www.pixman.org/")
474 (synopsis "Low-level pixel manipulation library")
475 (description "Pixman is a low-level software library for pixel
476 manipulation, providing features such as image compositing and trapezoid
477 rasterisation.")
478 (license license:x11)))
479
480 (define-public libdrm
481 (package
482 (name "libdrm")
483 (version "2.4.100")
484 (source
485 (origin
486 (method url-fetch)
487 (uri (string-append
488 "https://dri.freedesktop.org/libdrm/libdrm-"
489 version
490 ".tar.bz2"))
491 (sha256
492 (base32
493 "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67"))
494 (patches (search-patches "libdrm-symbol-check.patch"))))
495 (build-system meson-build-system)
496 (arguments
497 `(#:configure-flags
498 '(,@(match (%current-system)
499 ((or "armhf-linux" "aarch64-linux")
500 '("-Dexynos=true"
501 "-Domap=true"
502 "-Detnaviv=true"
503 "-Dtegra=true"
504 "-Dfreedreno-kgsl=true"))
505 (_ '())))
506
507 #:phases (modify-phases %standard-phases
508 (replace 'check
509 (lambda _
510 (invoke "meson" "test" "--timeout-multiplier" "5"))))))
511 (inputs
512 `(("libpciaccess" ,libpciaccess)))
513 (native-inputs
514 `(("pkg-config" ,pkg-config)))
515 (home-page "https://dri.freedesktop.org/wiki/")
516 (synopsis "Direct rendering userspace library")
517 (description "The Direct Rendering Infrastructure, also known as the DRI,
518 is a framework for allowing direct access to graphics hardware under the
519 X Window System in a safe and efficient manner. It includes changes to the
520 X server, to several client libraries, and to the kernel (DRM, Direct
521 Rendering Manager). The most important use for the DRI is to create fast
522 OpenGL implementations providing hardware acceleration for Mesa.
523 Several 3D accelerated drivers have been written to the DRI specification,
524 including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
525 and Matrox.")
526 (license license:x11)))
527
528
529 (define-public mtdev
530 (package
531 (name "mtdev")
532 (version "1.1.6")
533 (source
534 (origin
535 (method url-fetch)
536 (uri (string-append
537 "http://bitmath.org/code/mtdev/mtdev-"
538 version ".tar.bz2"))
539 (sha256
540 (base32
541 "1q700h9dqcm3zl6c3gj0qxxjcx6ibw2c51wjijydhwdcm26v5mqm"))))
542 (build-system gnu-build-system)
543 (arguments '(#:configure-flags '("--disable-static")))
544 (home-page "http://bitmath.org/code/mtdev/")
545 (synopsis "Multitouch protocol translation library")
546 (description "Mtdev is a stand-alone library which transforms all
547 variants of kernel MT events to the slotted type B protocol. The events
548 put into mtdev may be from any MT device, specifically type A without
549 contact tracking, type A with contact tracking, or type B with contact
550 tracking.")
551 (license license:x11)))
552
553 (define-public startup-notification
554 (package
555 (name "startup-notification")
556 (version "0.12")
557 (source
558 (origin
559 (method url-fetch)
560 (uri (string-append "https://www.freedesktop.org/software/" name
561 "/releases/" name "-" version ".tar.gz"))
562 (sha256
563 (base32
564 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
565 (build-system gnu-build-system)
566 (native-inputs `(("pkg-config" ,pkg-config)))
567 (inputs
568 `(("libx11" ,libx11)
569 ("xcb-util" ,xcb-util)))
570 (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
571 (synopsis "Application startup notification and feedback library")
572 (description
573 "Startup-notification contains a reference implementation of the startup
574 notification protocol. The reference implementation is mostly under an X Window
575 System style license, and has no special dependencies.")
576 ;; Most of the code is provided under x11 license.
577 (license license:lgpl2.0+)))
578
579 (define-public wmctrl
580 (package
581 (name "wmctrl")
582 (version "1.07")
583 (source (origin
584 (method url-fetch)
585 (uri (string-append
586 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
587 version ".tar.gz"))
588 (sha256
589 (base32
590 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
591 (patches (search-patches "wmctrl-64-fix.patch"))))
592 (build-system gnu-build-system)
593 (arguments
594 '(#:configure-flags
595 (list (string-append "--mandir="
596 (assoc-ref %outputs "out")
597 "/share/man"))))
598 (native-inputs
599 `(("pkg-config" ,pkg-config)))
600 (inputs
601 `(("libx11" ,libx11)
602 ("libxmu" ,libxmu)
603 ("glib" ,glib)))
604 (home-page "http://tomas.styblo.name/wmctrl/")
605 (synopsis "Command-line tool to control X window managers")
606 (description
607 "Wmctrl interacts with an X window manager that is compatible
608 with the EWMH/NetWM specification. It can query the window manager for
609 information, and request for certain window management actions (resize and
610 move windows, switch between desktops, etc.).")
611 (license license:gpl2+)))
612
613 (define-public scrot
614 (package
615 (name "scrot")
616 (version "1.2")
617 (source
618 (origin
619 (method git-fetch)
620 (uri
621 (git-reference
622 (url "https://github.com/resurrecting-open-source-projects/scrot.git")
623 (commit version)))
624 (file-name (git-file-name name version))
625 (sha256
626 (base32 "08gkdby0ysx2mki57z81zlm7vfnq9c1gq692xw67cg5vv2p3320w"))))
627 (build-system gnu-build-system)
628 (native-inputs
629 `(("autoconf" ,autoconf)
630 ("autoconf-archive" ,autoconf-archive)
631 ("automake" ,automake)))
632 (inputs
633 `(("giblib" ,giblib)
634 ("libx11" ,libx11)
635 ("libXcursor" ,libxcursor)
636 ("libXfixes" ,libxfixes)))
637 (home-page "https://github.com/resurrecting-open-source-projects/scrot")
638 (synopsis "Command-line screen capture utility for X Window System")
639 (description
640 "Scrot saves a screenshot of a full screen, a window or a part
641 of the screen selected by mouse.")
642 ;; This license removes a clause about X Consortium from the original
643 ;; X11 license.
644 (license (license:x11-style "file://COPYING"
645 "See 'COPYING' in the distribution."))))
646
647 (define-public slop
648 (package
649 (name "slop")
650 (version "7.4")
651 (source (origin
652 (method git-fetch)
653 (uri (git-reference
654 (url "https://github.com/naelstrof/slop.git")
655 (commit (string-append "v" version))))
656 (file-name (git-file-name name version))
657 (sha256
658 (base32
659 "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
660 (build-system cmake-build-system)
661 (arguments
662 '(#:tests? #f)) ; no "check" target
663 (inputs
664 `(("glew" ,glew)
665 ("glm" ,glm)
666 ("icu4c" ,icu4c)
667 ("libxext" ,libxext)
668 ("libxrender" ,libxrender)
669 ("mesa" ,mesa)))
670 (home-page "https://github.com/naelstrof/slop")
671 (synopsis "Select a region and print its bounds to stdout")
672 (description
673 "slop (Select Operation) is a tool that queries for a selection from a
674 user and prints the region to stdout. It grabs the mouse and turns it into a
675 crosshair, lets the user click and drag to make a selection (or click on a
676 window) while drawing a pretty box around it, then finally prints the
677 selection's dimensions to stdout.")
678 (license license:gpl3+)))
679
680 (define-public maim
681 (package
682 (name "maim")
683 (version "5.5.3")
684 (source (origin
685 (method git-fetch)
686 (uri (git-reference
687 (url "https://github.com/naelstrof/maim.git")
688 (commit (string-append "v" version))))
689 (file-name (git-file-name name version))
690 (sha256
691 (base32
692 "1kbxsz8whfxl5blwsvpva2q95zwy72argwhi1cfqh5lrhzq5zrpp"))))
693 (build-system cmake-build-system)
694 (arguments
695 '(#:tests? #f)) ; no "check" target
696 (inputs
697 `(("glm" ,glm)
698 ("libjpeg" ,libjpeg-turbo)
699 ("libpng" ,libpng)
700 ("libxcomposite" ,libxcomposite)
701 ("libxfixes" ,libxfixes)
702 ("libxrandr" ,libxrandr)
703 ("mesa" ,mesa)
704 ("slop" ,slop)
705 ("zlib" ,zlib)))
706 (home-page "https://github.com/naelstrof/maim")
707 (synopsis "Screenshot utility for X Window System")
708 (description
709 "maim (Make Image) is a tool that takes screenshots of your desktop and
710 saves it in any format. Along with a full screen, it allows you to capture a
711 predefined region or a particular window. Also, it makes it possible to
712 include cursor in the resulting image.")
713 (license license:gpl3+)))
714
715 (define-public unclutter
716 (package
717 (name "unclutter")
718 (version "8")
719 (source (origin
720 (method url-fetch)
721 (uri (string-append
722 "http://ftp.x.org/contrib/utilities/unclutter-"
723 version ".tar.Z"))
724 (sha256
725 (base32
726 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
727 (build-system gnu-build-system)
728 (arguments
729 '(#:tests? #f ; no check target
730 #:phases
731 (modify-phases %standard-phases
732 (delete 'configure)
733 (replace 'install
734 (lambda* (#:key inputs outputs #:allow-other-keys)
735 (let* ((out (assoc-ref outputs "out"))
736 (bin (string-append out "/bin"))
737 (man1 (string-append out "/share/man/man1")))
738 (mkdir-p bin)
739 (mkdir-p man1)
740 (invoke "make" "install" "install.man"
741 (string-append "BINDIR=" bin)
742 (string-append "MANDIR=" man1))))))))
743 (inputs `(("libx11" ,libx11)))
744 (home-page "http://ftp.x.org/contrib/utilities/")
745 (synopsis "Hide idle mouse cursor")
746 (description
747 "Unclutter is a program which runs permanently in the background of an
748 X11 session. It checks on the X11 pointer (cursor) position every few
749 seconds, and when it finds it has not moved (and no buttons are pressed
750 on the mouse, and the cursor is not in the root window) it creates a
751 small sub-window as a child of the window the cursor is in. The new
752 window installs a cursor of size 1x1 but a mask of all 0, i.e. an
753 invisible cursor. This allows you to see all the text in an xterm or
754 xedit, for example. The human factors crowd would agree it should make
755 things less distracting.")
756 (license license:public-domain)))
757
758 (define-public xautomation
759 (package
760 (name "xautomation")
761 (version "1.09")
762 (source
763 (origin
764 (method url-fetch)
765 (uri (string-append "https://www.hoopajoo.net/static/projects/"
766 "xautomation-" version ".tar.gz"))
767
768 (sha256
769 (base32
770 "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
771 (build-system gnu-build-system)
772 (inputs
773 `(("libpng" ,libpng)
774 ("libx11" ,libx11)
775 ("libxi" ,libxi)
776 ("libxtst" ,libxtst)))
777 (native-inputs
778 `(("xorgproto" ,xorgproto)))
779 (synopsis "Tools to automate tasks in X such as detecting on screen images")
780 (description
781 "Xautomation can control X from the command line for scripts, and
782 do visual scraping to find things on the screen. The control interface
783 allows mouse movement, clicking, button up/down, key up/down, etc, and
784 uses the XTest extension so you don't have the annoying problems that
785 xse has when apps ignore sent events. The visgrep program can find
786 images inside of images and reports the coordinates, allowing programs
787 to find buttons, etc, on the screen to click on.")
788 (home-page "https://www.hoopajoo.net/projects/xautomation.html")
789 (license license:gpl2+)))
790
791 (define-public xbanish
792 (package
793 (name "xbanish")
794 (version "1.6")
795 (home-page "https://github.com/jcs/xbanish")
796 (source (origin
797 (method git-fetch)
798 (uri (git-reference (url home-page)
799 (commit (string-append "v" version))))
800 (file-name (git-file-name name version))
801 (sha256
802 (base32
803 "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
804 (build-system gnu-build-system)
805 (arguments
806 `(#:tests? #f ;no tests
807 #:make-flags (list "CC=gcc"
808 (string-append "PREFIX=" (assoc-ref %outputs "out")))
809 #:phases (modify-phases %standard-phases
810 (delete 'configure))))
811 (inputs
812 `(("libx11" ,libx11)
813 ("libxfixes" ,libxfixes)
814 ("libxi" ,libxi)
815 ("libxt" ,libxt)))
816 (synopsis "Banish the mouse cursor")
817 (description
818 "@command{xbanish} hides the mouse cursor when you start typing, and
819 shows it again when the mouse cursor moves or a mouse button is pressed.")
820 (license license:bsd-3)))
821
822 (define-public xlockmore
823 (package
824 (name "xlockmore")
825 (version "5.62")
826 (source (origin
827 (method url-fetch)
828 (uri (list (string-append "http://sillycycle.com/xlock/"
829 "xlockmore-" version ".tar.xz")
830 ;; Previous releases are moved to a subdirectory.
831 (string-append "http://sillycycle.com/xlock/"
832 "recent-releases/"
833 "xlockmore-" version ".tar.xz")))
834 (sha256
835 (base32
836 "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi"))))
837 (build-system gnu-build-system)
838 (arguments
839 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
840 (assoc-ref %outputs "out")
841 "/lib/X11/app-defaults"))
842 #:tests? #f)) ;no such thing as a test suite
843 (inputs
844 `(("libX11" ,libx11)
845 ("libXext" ,libxext)
846 ("libXt" ,libxt)
847 ("linux-pam" ,linux-pam)))
848 (home-page "https://sillycycle.com/xlockmore.html")
849 (synopsis "Screen locker for the X Window System")
850 (description
851 "XLockMore is a classic screen locker and screen saver for the
852 X Window System.")
853 (license (license:non-copyleft #f "See xlock.c.")
854 ))) ; + GPLv2 in modes/glx/biof.c.
855
856 (define-public xosd
857 (package
858 (name "xosd")
859 (version "2.2.14")
860 (source (origin
861 (method url-fetch)
862 (uri (string-append
863 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
864 name "-" version ".tar.gz"))
865 (sha256
866 (base32
867 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
868 (build-system gnu-build-system)
869 (arguments
870 '(#:configure-flags
871 (list (string-append "--mandir=" %output "/share/man"))))
872 (inputs
873 `(("libx11" ,libx11)
874 ("libxt" ,libxt)
875 ("libxext" ,libxext)
876 ("libxinerama" ,libxinerama)))
877 (home-page "https://sourceforge.net/projects/libxosd/")
878 (synopsis "X On Screen Display")
879 (description
880 "XOSD provides a C library and a simple utility (osd_cat) for displaying
881 transparent text on your screen.")
882 (license license:gpl2+)))
883
884 (define-public xbindkeys
885 (package
886 (name "xbindkeys")
887 (version "1.8.6")
888 (source (origin
889 (method url-fetch)
890 ;; Download from the savannah mirror list fails
891 (uri (string-append
892 "http://www.nongnu.org/xbindkeys/xbindkeys-"
893 version
894 ".tar.gz"))
895 (sha256
896 (base32
897 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
898 (build-system gnu-build-system)
899 (inputs
900 `(("libx11" ,libx11)
901 ("guile" ,guile-2.0)))
902 (home-page "https://www.nongnu.org/xbindkeys/")
903 (synopsis "Associate a combination of keys with a shell command")
904 (description
905 "XBindKeys is a program that allows you to launch shell commands with
906 your keyboard or your mouse under the X Window System. It links commands to
907 keys or mouse buttons, using a configuration file. It's independent of the
908 window manager and can capture all keyboard keys (ex: Power, Wake...). It
909 optionally supports a Guile-based configuration file layout, which enables you
910 to access all XBindKeys internals, so you can have key combinations, double
911 clicks or timed double clicks take actions. Also all functions that work in
912 Guile will work for XBindKeys.")
913 (license license:gpl2+)))
914
915 (define-public sxhkd
916 (package
917 (name "sxhkd")
918 (version "0.6.1")
919 (source
920 (origin
921 (method git-fetch)
922 (uri (git-reference
923 (url "https://github.com/baskerville/sxhkd")
924 (commit version)))
925 (file-name (git-file-name name version))
926 (sha256
927 (base32 "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"))))
928 (build-system gnu-build-system)
929 (inputs
930 `(("asciidoc" ,asciidoc)
931 ("libxcb" ,libxcb)
932 ("xcb-util" ,xcb-util)
933 ("xcb-util-keysyms" ,xcb-util-keysyms)
934 ("xcb-util-wm" ,xcb-util-wm)))
935 (arguments
936 `(#:phases (modify-phases %standard-phases (delete 'configure))
937 #:tests? #f ; no check target
938 #:make-flags
939 (list "CC=gcc"
940 (string-append "PREFIX=" %output)
941 ;; Keep the documentation where the build system installs LICENSE.
942 (string-append "DOCPREFIX=" %output
943 "/share/doc/" ,name "-" ,version))))
944 (home-page "https://github.com/baskerville/sxhkd")
945 (synopsis "Simple X hotkey daemon")
946 (description "sxhkd is a simple X hotkey daemon with a powerful and
947 compact configuration syntax.")
948 (license license:bsd-2)))
949
950 (define-public rxvt-unicode
951 (package
952 (name "rxvt-unicode")
953 (version "9.22")
954 (source (origin
955 (method url-fetch)
956 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
957 name "-" version ".tar.bz2"))
958 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
959 (sha256
960 (base32
961 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
962 (build-system gnu-build-system)
963 (arguments
964 ;; This sets the destination when installing the necessary terminal
965 ;; capability data, which are not provided by 'ncurses'. See
966 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
967 `(#:make-flags (list (string-append "TERMINFO="
968 (assoc-ref %outputs "out")
969 "/share/terminfo"))
970 #:phases
971 (modify-phases %standard-phases
972 (add-after 'install 'install-desktop-urxvt
973 (lambda* (#:key outputs #:allow-other-keys)
974 (let* ((output (assoc-ref outputs "out"))
975 (desktop (string-append output "/share/applications")))
976 (mkdir-p desktop)
977 (with-output-to-file
978 (string-append desktop "/urxvt.desktop")
979 (lambda _
980 (format #t
981 "[Desktop Entry]~@
982 Name=rxvt-unicode~@
983 Comment=~@
984 Exec=~a/bin/urxvt~@
985 TryExec=~@*~a/bin/urxvt~@
986 Icon=~@
987 Type=Application~%"
988 output)))
989 #t)))
990 (add-after 'install 'install-desktop-urxvtc
991 (lambda* (#:key outputs #:allow-other-keys)
992 (let* ((output (assoc-ref outputs "out"))
993 (desktop (string-append output "/share/applications")))
994 (mkdir-p desktop)
995 (with-output-to-file
996 (string-append desktop "/urxvtc.desktop")
997 (lambda _
998 (format #t
999 "[Desktop Entry]~@
1000 Name=rxvt-unicode (client)~@
1001 Comment=Rxvt clone with XFT and unicode support~@
1002 Exec=~a/bin/urxvtc~@
1003 TryExec=~@*~a/bin/urxvtc~@
1004 Icon=~@
1005 Type=Application~%"
1006 output)))
1007 #t))))))
1008 (inputs
1009 `(("libXft" ,libxft)
1010 ("libX11" ,libx11)))
1011 (native-inputs
1012 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
1013 ("perl" ,perl)
1014 ("pkg-config" ,pkg-config)))
1015 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
1016 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
1017 (native-search-paths
1018 (list (search-path-specification
1019 (variable "TERMINFO_DIRS")
1020 (files '("share/terminfo")))))
1021 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
1022 (synopsis "Rxvt clone with XFT and unicode support")
1023 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
1024 intended as an xterm replacement for users who do not require features such as
1025 Tektronix 4014 emulation and toolkit-style configurability. It supports
1026 unicode, XFT and may be extended with Perl plugins. It also comes with a
1027 client/daemon pair that lets you open any number of terminal windows from
1028 within a single process.")
1029 (license license:gpl3+)))
1030
1031 (define-public xcape
1032 (package
1033 (name "xcape")
1034 (version "1.2")
1035 (source (origin
1036 (method git-fetch)
1037 (uri (git-reference
1038 (url "https://github.com/alols/xcape.git")
1039 (commit (string-append "v" version))))
1040 (file-name (git-file-name name version))
1041 (sha256
1042 (base32
1043 "09a05cxgrip6nqy1qmwblamp2bhknqnqmxn7i2a1rgxa0nba95dm"))))
1044 (build-system gnu-build-system)
1045 (arguments
1046 `(#:tests? #f ; no check target
1047 ;; no configure script
1048 #:phases (modify-phases %standard-phases (delete 'configure))
1049 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
1050 "MANDIR=/share/man/man1"
1051 "CC=gcc")))
1052 (inputs
1053 `(("libxtst" ,libxtst)
1054 ("libx11" ,libx11)))
1055 (native-inputs
1056 `(("pkg-config" ,pkg-config)))
1057 (home-page "https://github.com/alols/xcape")
1058 (synopsis "Use a modifier key in X.org as another key")
1059 (description
1060 "This utility for X.org uses a modifier key as another key when
1061 pressed and released on its own. The default behaviour is to generate the
1062 Escape key when Left Control is pressed and released on its own.")
1063 (license license:gpl3+)))
1064
1065 (define-public libwacom
1066 (package
1067 (name "libwacom")
1068 (version "1.3")
1069 (source (origin
1070 (method url-fetch)
1071 (uri (string-append
1072 "https://github.com/linuxwacom/libwacom/releases/download/"
1073 "libwacom-" version "/libwacom-" version ".tar.bz2"))
1074 (sha256
1075 (base32
1076 "0g48cdg2qpvrr2nk8ccibjg3iv7iqskdv66izxacqx70w47y1771"))))
1077 (build-system glib-or-gtk-build-system)
1078 (arguments
1079 `(#:configure-flags '("--disable-static")))
1080 (native-inputs
1081 `(("pkg-config" ,pkg-config)))
1082 (inputs
1083 `(("gtk+" ,gtk+)
1084 ("libgudev" ,libgudev)
1085 ("eudev" ,eudev)
1086 ("libxml2" ,libxml2)))
1087 (propagated-inputs
1088 ;; libwacom includes header files that include GLib, and libinput uses
1089 ;; those header files.
1090 `(("glib" ,glib)))
1091 (home-page "https://linuxwacom.github.io/")
1092 (synopsis "Helper library for Wacom tablet settings")
1093 (description
1094 "Libwacom is a library to help implement Wacom tablet settings. It is
1095 intended to be used by client-programs that need model identification. It is
1096 already being used by the gnome-settings-daemon and the GNOME Control Center
1097 Wacom tablet applet.")
1098 (license license:x11)))
1099
1100 (define-public xf86-input-wacom
1101 (package
1102 (name "xf86-input-wacom")
1103 (version "0.39.0")
1104 (source
1105 (origin
1106 (method url-fetch)
1107 (uri (string-append
1108 "https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
1109 "xf86-input-wacom-" version "/"
1110 "xf86-input-wacom-" version ".tar.bz2"))
1111 (sha256
1112 (base32 "11qk58az6qwii774ga45h5yqzipwn56f0d74kdbajqdv45p85gqj"))))
1113 (arguments
1114 `(#:configure-flags
1115 (list (string-append "--with-sdkdir="
1116 (assoc-ref %outputs "out")
1117 "/include/xorg")
1118 (string-append "--with-xorg-conf-dir="
1119 (assoc-ref %outputs "out")
1120 "/share/X11/xorg.conf.d"))))
1121 (build-system gnu-build-system)
1122 (native-inputs
1123 `(("pkg-config" ,pkg-config)))
1124 (inputs
1125 `(("xorg-server" ,xorg-server)
1126 ("libxrandr" ,libxrandr)
1127 ("libxinerama" ,libxinerama)
1128 ("libxi" ,libxi)
1129 ("eudev" ,eudev)))
1130 (home-page "https://linuxwacom.github.io/")
1131 (synopsis "Wacom input driver for X")
1132 (description
1133 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
1134 the X.Org X Server version 1.7 and later (X11R7.5 or later).")
1135 (license license:x11)))
1136
1137 (define-public redshift
1138 (package
1139 (name "redshift")
1140 (version "1.12")
1141 (source
1142 (origin
1143 (method url-fetch)
1144 (uri
1145 (string-append "https://github.com/jonls/redshift/"
1146 "releases/download/v" version
1147 "/redshift-" version ".tar.xz"))
1148 (sha256
1149 (base32
1150 "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
1151 (build-system gnu-build-system)
1152 (native-inputs
1153 `(("pkg-config" ,pkg-config)
1154 ("intltool" ,intltool)))
1155 (inputs
1156 `(("libdrm" ,libdrm)
1157 ("libx11" ,libx11)
1158 ("libxcb" ,libxcb)
1159 ("libxxf86vm" ,libxxf86vm)
1160 ("glib" ,glib))) ; for Geoclue2 support
1161 (home-page "https://github.com/jonls/redshift")
1162 (synopsis "Adjust the color temperature of your screen")
1163 (description
1164 "Redshift adjusts the color temperature according to the position of the
1165 sun. A different color temperature is set during night and daytime. During
1166 twilight and early morning, the color temperature transitions smoothly from
1167 night to daytime temperature to allow your eyes to slowly adapt. At night the
1168 color temperature should be set to match the lamps in your room.")
1169 (license license:gpl3+)))
1170
1171 (define-public redshift-wayland
1172 (let ((commit "7da875d34854a6a34612d5ce4bd8718c32bec804")
1173 (revision "1"))
1174 (package
1175 (name "redshift-wayland")
1176 (version (string-append "1.12-"
1177 revision "." (string-take commit 7)))
1178 (source (origin
1179 (method git-fetch)
1180 (uri (git-reference
1181 (url "https://github.com/minus7/redshift.git")
1182 (commit commit)))
1183 (file-name (string-append name "-" version))
1184 (sha256
1185 (base32
1186 "0nbkcw3avmzjg1jr1g9yfpm80kzisy55idl09b6wvzv2sz27n957"))))
1187 (build-system gnu-build-system)
1188 (native-inputs
1189 `(("autoconf" ,autoconf)
1190 ("automake" ,automake)
1191 ("libtool" ,libtool)
1192 ("pkg-config" ,pkg-config)
1193 ("intltool" ,intltool)))
1194 (inputs
1195 `(("libdrm" ,libdrm)
1196 ("libx11" ,libx11)
1197 ("libxcb" ,libxcb)
1198 ("libxxf86vm" ,libxxf86vm)
1199 ("glib" ,glib) ; for Geoclue2 support
1200 ("wayland" ,wayland)))
1201 (home-page "https://github.com/minus7/redshift")
1202 (synopsis "Adjust the color temperature of your screen (with Wayland support)")
1203 (description
1204 "Redshift adjusts the color temperature according to the position of the
1205 sun. A different color temperature is set during night and daytime. During
1206 twilight and early morning, the color temperature transitions smoothly from
1207 night to daytime temperature to allow your eyes to slowly adapt. At night the
1208 color temperature should be set to match the lamps in your room.
1209
1210 This is a fork with added support for Wayland using the wlr-gamma-control
1211 protocol.")
1212 (license license:gpl3+))))
1213
1214 (define-public xscreensaver
1215 (package
1216 (name "xscreensaver")
1217 (version "5.44")
1218 (source
1219 (origin
1220 (method url-fetch)
1221 (uri
1222 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
1223 version ".tar.gz"))
1224 (sha256
1225 (base32 "15bv05vpfjwsrqbazrjmm382jd7vvw0mp6y9vasn6wvxzjf0in3k"))))
1226 (build-system gnu-build-system)
1227 (arguments
1228 `(#:tests? #f ; no check target
1229 #:phases
1230 (modify-phases %standard-phases
1231 (add-before 'configure 'adjust-gtk-resource-paths
1232 (lambda _
1233 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
1234 (("@GTK_DATADIR@") "@datadir@")
1235 (("@PO_DATADIR@") "@datadir@"))
1236 #t)))
1237 #:configure-flags '("--with-pam" "--with-proc-interrupts"
1238 "--without-readdisplay")
1239 #:make-flags (list (string-append "AD_DIR="
1240 (assoc-ref %outputs "out")
1241 "/lib/X11/app-defaults"))))
1242 (native-inputs
1243 `(("pkg-config" ,pkg-config)
1244 ("intltool" ,intltool)))
1245 (inputs
1246 `(("libx11" ,libx11)
1247 ("libxext" ,libxext)
1248 ("libxi" ,libxi)
1249 ("libxt" ,libxt)
1250 ("libxft" ,libxft)
1251 ("libxmu" ,libxmu)
1252 ("libxpm" ,libxpm)
1253 ("libglade" ,libglade)
1254 ("libxml2" ,libxml2)
1255 ("libsm" ,libsm)
1256 ("libjpeg" ,libjpeg)
1257 ("linux-pam" ,linux-pam)
1258 ("pango" ,pango)
1259 ("gtk+" ,gtk+)
1260 ("perl" ,perl)
1261 ("cairo" ,cairo)
1262 ("bc" ,bc)
1263 ("libxrandr" ,libxrandr)
1264 ("glu" ,glu)
1265 ("glib" ,glib)))
1266 (home-page "https://www.jwz.org/xscreensaver/")
1267 (synopsis "Classic screen saver suite supporting screen locking")
1268 (description
1269 "xscreensaver is a popular screen saver collection with many entertaining
1270 demos. It also acts as a nice screen locker.")
1271 ;; xscreensaver doesn't have a single copyright file and instead relies on
1272 ;; source comment headers, though most files have the same lax
1273 ;; permissions. To reduce complexity, we're pointing at Debian's
1274 ;; breakdown of the copyright information.
1275 (license (license:non-copyleft
1276 (string-append
1277 "http://metadata.ftp-master.debian.org/changelogs/"
1278 "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
1279
1280 (define-public xsel
1281 (package
1282 (name "xsel")
1283 (version "1.2.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "http://www.vergenet.net/~conrad/software"
1287 "/xsel/download/xsel-" version ".tar.gz"))
1288 (sha256
1289 (base32
1290 "070lbcpw77j143jrbkh0y1v10ppn1jwmjf92800w7x42vh4cw9xr"))))
1291 (build-system gnu-build-system)
1292 (inputs
1293 `(("libxt" ,libxt)))
1294 (home-page "http://www.vergenet.net/~conrad/software/xsel/")
1295 (synopsis "Manipulate X selection")
1296 (description
1297 "XSel is a command-line program for getting and setting the contents of
1298 the X selection. Normally this is only accessible by manually highlighting
1299 information and pasting it with the middle mouse button.
1300
1301 XSel reads from standard input and writes to standard output by default,
1302 but can also follow a growing file, display contents, delete entries and more.")
1303 (license (license:x11-style "file://COPYING"
1304 "See COPYING in the distribution."))))
1305
1306 (define-public xdpyprobe
1307 (package
1308 (name "xdpyprobe")
1309 (version "0.1")
1310 (source (origin
1311 (method url-fetch)
1312 (uri (string-append "https://github.com/alezost/" name
1313 "/releases/download/v" version
1314 "/" name "-" version ".tar.gz"))
1315 (sha256
1316 (base32
1317 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
1318 (build-system gnu-build-system)
1319 (inputs
1320 `(("libx11" ,libx11)))
1321 (home-page "https://github.com/alezost/xdpyprobe")
1322 (synopsis "Probe X server for connectivity")
1323 (description
1324 "Xdpyprobe is a tiny C program whose only purpose is to probe a
1325 connectivity of the X server running on a particular @code{DISPLAY}.")
1326 (license license:gpl3+)))
1327
1328 (define-public rofi
1329 (package
1330 (name "rofi")
1331 (version "1.5.4")
1332 (source (origin
1333 (method url-fetch)
1334 (uri (string-append "https://github.com/DaveDavenport/rofi/"
1335 "releases/download/"
1336 version "/rofi-" version ".tar.xz"))
1337 (sha256
1338 (base32
1339 "1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
1340 (build-system gnu-build-system)
1341 (inputs
1342 `(("pango" ,pango)
1343 ("cairo" ,cairo)
1344 ("glib" ,glib)
1345 ("startup-notification" ,startup-notification)
1346 ("librsvg" ,librsvg)
1347 ("libxkbcommon" ,libxkbcommon)
1348 ("libxcb" ,libxcb)
1349 ("xcb-util" ,xcb-util)
1350 ("xcb-util-xrm" ,xcb-util-xrm)
1351 ("xcb-util-wm" ,xcb-util-wm)))
1352 (native-inputs
1353 `(("bison" ,bison)
1354 ("check" ,check)
1355 ("flex" ,flex)
1356 ("glib:bin" ,glib "bin")
1357 ("pkg-config" ,pkg-config)))
1358 (arguments
1359 `(#:parallel-tests? #f ; fails in some circumstances
1360 #:phases
1361 (modify-phases %standard-phases
1362 (add-before 'configure 'adjust-tests
1363 (lambda _
1364 (substitute* '("test/helper-expand.c")
1365 (("~root") "/root")
1366 (("~") "")
1367 (("g_get_home_dir \\(\\)") "\"/\""))
1368 #t)))))
1369 (home-page "https://github.com/DaveDavenport/rofi")
1370 (synopsis "Application launcher")
1371 (description "Rofi is a minimalist application launcher. It memorizes which
1372 applications you regularly use and also allows you to search for an application
1373 by name.")
1374 (license license:expat)))
1375
1376 (define-public tint2
1377 (package
1378 (name "tint2")
1379 (version "0.14.6")
1380 (source (origin
1381 (method url-fetch)
1382 (uri (string-append "https://gitlab.com/o9000/" name
1383 "/repository/archive.tar.gz?ref=" version))
1384 (file-name (string-append name "-" version ".tar.gz"))
1385 (sha256
1386 (base32
1387 "1kwzwxy4myagybm3rc7dgynfgp75742n348qibn1p2an9ggyivda"))))
1388 (build-system cmake-build-system)
1389 (arguments
1390 '(#:tests? #f ;no test target
1391 #:phases
1392 (modify-phases %standard-phases
1393 (add-after 'unpack 'fix-installation-prefix
1394 (lambda _
1395 (substitute* "CMakeLists.txt"
1396 (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
1397 #t)))))
1398 (inputs
1399 `(("gtk+" ,gtk+-2)
1400 ("imlib2" ,imlib2)
1401 ("librsvg" ,librsvg)
1402 ("libxcomposite" ,libxcomposite)
1403 ("libxdamage" ,libxdamage)
1404 ("libxft" ,libxft)
1405 ("libxinerama" ,libxinerama)
1406 ("libxrandr" ,libxrandr)
1407 ("startup-notification" ,startup-notification)))
1408 (native-inputs
1409 `(("gettext" ,gettext-minimal)
1410 ("pkg-config" ,pkg-config)))
1411 (home-page "https://gitlab.com/o9000/tint2")
1412 (synopsis "Lightweight task bar")
1413 (description
1414 "Tint2 is a simple task bar made for modern X window managers. It was
1415 specifically made for Openbox but it should also work with other window
1416 managers (GNOME, KDE, XFCE etc.).
1417
1418 The taskbar includes transparency and color settings for the font, icons,
1419 border, and background. It also supports multihead setups, customized mouse
1420 actions, a built-in clock, a battery monitor and a system tray.")
1421 (license license:gpl2)))
1422
1423 (define-public dzen
1424 (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
1425 (revision "1"))
1426 (package
1427 (name "dzen")
1428 (version (string-append "0.9.5-" ; Taken from `config.mk`.
1429 revision "." (string-take commit 7)))
1430 (source (origin
1431 (method git-fetch)
1432 (uri (git-reference
1433 (url "https://github.com/robm/dzen.git")
1434 (commit commit)))
1435 (file-name (string-append name "-" version))
1436 (sha256
1437 (base32
1438 "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
1439 (build-system gnu-build-system)
1440 (arguments
1441 `(#:tests? #f ; No test suite.
1442 #:make-flags ; Replacement for `config.mk`.
1443 (list
1444 (string-append "VERSION = " ,version)
1445 (string-append "PREFIX = " %output)
1446 "MANPREFIX = ${PREFIX}/share/man"
1447 "INCS = -I."
1448 "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
1449 "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
1450 -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
1451 "LDFLAGS = ${LIBS}"
1452 "CC = gcc"
1453 "LD = ${CC}")
1454 #:phases
1455 (modify-phases %standard-phases
1456 (delete 'configure) ; No configuration script.
1457 ;; Use own make-flags instead of `config.mk`.
1458 (add-before 'build 'dont-include-config-mk
1459 (lambda _
1460 (substitute* "Makefile" (("include config.mk") ""))
1461 #t)))))
1462 (inputs
1463 `(("libx11" ,libx11)
1464 ("libxft" ,libxft)
1465 ("libxpm" ,libxpm)
1466 ("libxinerama" ,libxinerama)))
1467 (native-inputs `(("pkg-config" ,pkg-config)))
1468 (synopsis "General purpose messaging, notification and menuing program for X11")
1469 (description "Dzen is a general purpose messaging, notification and menuing
1470 program for X11. It was designed to be fast, tiny and scriptable in any language.")
1471 (home-page "https://github.com/robm/dzen")
1472 (license license:expat))))
1473
1474 (define-public xftwidth
1475 (package
1476 (name "xftwidth")
1477 (version "20170402")
1478 (source
1479 (origin
1480 (method git-fetch)
1481 (uri (git-reference
1482 (url "http://github.com/vixus0/xftwidth")
1483 (commit "35ff963908d41a8a6a7101c434c88255728025ee")))
1484 (sha256
1485 (base32
1486 "1jwl25785li24kbp0m1wxfwk4dgxkliynn03nsj813cjr34kq16h"))
1487 (file-name (string-append name "-" version "-checkout"))))
1488 (build-system gnu-build-system)
1489 (inputs `(("freetype" ,freetype)
1490 ("libx11" ,libx11)
1491 ("fontconfig" ,fontconfig)
1492 ("libxft" ,libxft)))
1493 (native-inputs
1494 `(("pkg-config" ,pkg-config)))
1495 (arguments
1496 '(#:phases
1497 (modify-phases %standard-phases
1498 (add-after 'unpack 'fix-makefile ; /usr/bin doesn't show up in PATH
1499 (lambda _ (substitute* "Makefile" (("usr/") "")) #t))
1500 (delete 'check) ; no check included in Makefile
1501 (delete 'configure))
1502 #:make-flags
1503 (let ((out (assoc-ref %outputs "out")))
1504 (list (string-append "DESTDIR=" out)))))
1505 (synopsis "Calculator for determining pixel widths of displayed text using Xft fonts")
1506 (description "xftwidth is a small C program for calculating the pixel
1507 widths of displayed text using Xft fonts. It is especially useful in scripts
1508 for displaying text in graphical panels, menus, popups, and notification
1509 windows generated using dzen. These scripts are often used in conjunction with
1510 minimalistic tiling window managers such as herbstluftwm and bspwm.")
1511 (home-page "http://github.com/vixus0/xftwidth")
1512 (license license:expat)))
1513
1514 (define-public xcb-util-xrm
1515 (package
1516 (name "xcb-util-xrm")
1517 (version "1.3")
1518 (source (origin
1519 (method url-fetch)
1520 (uri (string-append
1521 "https://github.com/Airblader/xcb-util-xrm/releases"
1522 "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
1523 (sha256
1524 (base32
1525 "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"))
1526 (modules '((guix build utils)))
1527 (snippet
1528 ;; Drop bundled m4.
1529 '(begin
1530 (delete-file-recursively "m4")
1531 #t))))
1532 (build-system gnu-build-system)
1533 (native-inputs
1534 `(("pkg-config" ,pkg-config)
1535 ("m4" ,m4)
1536 ("libx11" ,libx11))) ; for tests
1537 (inputs
1538 `(("libxcb" ,libxcb)
1539 ("xcb-util" ,xcb-util)))
1540 (home-page "https://github.com/Airblader/xcb-util-xrm")
1541 (synopsis "XCB utility functions for the X resource manager")
1542 (description
1543 "The XCB util module provides a number of libraries which sit on
1544 top of libxcb, the core X protocol library, and some of the extension
1545 libraries. These experimental libraries provide convenience functions
1546 and interfaces which make the raw X protocol more usable. Some of the
1547 libraries also provide client-side code which is not strictly part of
1548 the X protocol but which has traditionally been provided by Xlib.
1549
1550 XCB util-xrm module provides the following libraries:
1551
1552 - xrm: utility functions for the X resource manager.")
1553 (license license:x11)))
1554
1555 (define-public xcalib
1556 (package
1557 (name "xcalib")
1558 (version "0.10")
1559 (home-page "https://github.com/OpenICC/xcalib")
1560 (source (origin
1561 (method git-fetch)
1562 (uri (git-reference
1563 (url home-page)
1564 (commit version)))
1565 (file-name (git-file-name name version))
1566 (sha256
1567 (base32
1568 "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
1569 (patches
1570 (list
1571 ;; Add missing documentation for the new --output option.
1572 ;; This upstream patch can be removed on the next update.
1573 (origin
1574 (method url-fetch)
1575 (uri (string-append
1576 home-page "/commit/"
1577 "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch"))
1578 (file-name "xcalib-update-man-page.patch")
1579 (sha256
1580 (base32
1581 "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6")))))))
1582 (build-system cmake-build-system)
1583 (arguments
1584 '(#:tests? #f)) ; no test suite
1585 (inputs `(("libx11" ,libx11)
1586 ("libxext" ,libxext)
1587 ("libxrandr" ,libxrandr)
1588 ("libxxf86vm" ,libxxf86vm)))
1589 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1590 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1591 profiles to the video card's gamma ramp. It does work with most video card
1592 drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1593 invert colors on a specific display/screen.")
1594 (license license:gpl2)))
1595
1596 (define-public nxbelld
1597 (package
1598 (name "nxbelld")
1599 (version "0.1.2")
1600 (source (origin
1601 (method git-fetch)
1602 (uri (git-reference
1603 (url "https://github.com/dusxmt/nxbelld.git")
1604 (commit version)))
1605 (sha256
1606 (base32
1607 "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
1608 (file-name (git-file-name name version))))
1609 (build-system gnu-build-system)
1610 (arguments '(#:configure-flags `("--enable-sound"
1611 "--enable-wave"
1612 "--enable-alsa")))
1613 (native-inputs `(("autoconf" ,autoconf)
1614 ("automake" ,automake)
1615 ("pkg-config" ,pkg-config)
1616 ("perl" ,perl)))
1617 (inputs `(("libx11" ,libx11)
1618 ("alsa-lib" ,alsa-lib)))
1619 (synopsis "Daemon that performs an action every time the X11 bell is rung")
1620 (description "nxbelld is a tiny utility to aid people who either don't
1621 like the default PC speaker beep, or use a sound driver that doesn't have
1622 support for the PC speaker. The utility performs a given action every time
1623 the X bell is rung. The actions nxbelld can currently perform include running
1624 a specified program, emulating the PC speaker beep using the sound card (default),
1625 or playing a PCM encoded WAVE file.")
1626 (home-page "https://github.com/dusxmt/nxbelld")
1627 (license license:gpl3+)))
1628
1629 (define-public xautolock
1630 (package
1631 (name "xautolock")
1632 (version "2.2")
1633 (source (origin
1634 (method url-fetch)
1635 (uri (string-append "https://www.ibiblio.org/pub/linux/X11/"
1636 "screensavers/xautolock-" version ".tgz"))
1637 (sha256
1638 (base32
1639 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
1640 (build-system gnu-build-system)
1641 (native-inputs
1642 `(("imake" ,imake)))
1643 (inputs
1644 `(("libx11" ,libx11)
1645 ("libxext" ,libxext)
1646 ("libxscrnsaver" ,libxscrnsaver)))
1647 (arguments
1648 `(#:tests? #f
1649 #:phases
1650 (modify-phases %standard-phases
1651 (replace 'configure
1652 (lambda* (#:key inputs outputs #:allow-other-keys)
1653 (let ((imake (assoc-ref inputs "imake"))
1654 (out (assoc-ref outputs "out")))
1655 ;; Generate Makefile
1656 (invoke "xmkmf")
1657 (substitute* "Makefile"
1658 ;; These imake variables somehow remain undefined
1659 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
1660 ;; Reset a few variable defaults that are set in imake templates
1661 ((imake) out)
1662 (("(MANPATH = )[[:graph:]]*" _ front)
1663 (string-append front out "/share/man")))
1664 ;; Old BSD-style 'union wait' is unneeded (defining
1665 ;; _USE_BSD did not seem to fix it)
1666 (substitute* "src/engine.c"
1667 (("union wait status") "int status = 0"))
1668 #t)))
1669 (add-after 'install 'install/man
1670 (lambda _
1671 (invoke "make" "install.man"))))))
1672 (home-page "https://ibiblio.org/pub/Linux/X11/screensavers/")
1673 (synopsis "Program launcher for idle X sessions")
1674 (description "Xautolock monitors input devices under the X Window
1675 System, and launches a program of your choice if there is no activity after
1676 a user-configurable period of time.")
1677 (license license:gpl2)))
1678
1679 (define-public screen-message
1680 (package
1681 (name "screen-message")
1682 (version "0.25")
1683 (source (origin
1684 (method url-fetch)
1685 (uri (string-append
1686 "https://www.joachim-breitner.de/archive/screen-message"
1687 "/screen-message-" version ".tar.gz"))
1688 (sha256
1689 (base32
1690 "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
1691 (build-system gnu-build-system)
1692 (inputs `(("gtk3" ,gtk+)
1693 ("gdk" ,gdk-pixbuf)
1694 ("pango" ,pango)))
1695 (native-inputs `(("pkg-config" ,pkg-config)))
1696 (arguments
1697 ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
1698 ;; this fixes it:
1699 `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
1700 (synopsis "Print messages on your screen")
1701 (description "@code{screen-message} is a tool for displaying text on
1702 your screen. It will make the text as large as possible and display it
1703 with black color on a white background (colors are configurable on the
1704 commandline).")
1705 (home-page "https://www.joachim-breitner.de/projects#screen-message")
1706 (license license:gpl2+)))
1707
1708 (define-public xss-lock
1709 ;; xss-lock does not seem to be maintained any longer, but the last commits
1710 ;; fix important issues so we package them.
1711 (let ((version "0.3.0")
1712 (revision "1")
1713 (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
1714 (package
1715 (name "xss-lock")
1716 (version (git-version version revision commit))
1717 (source (origin
1718 (method git-fetch)
1719 (uri (git-reference
1720 (url "https://bitbucket.org/raymonad/xss-lock.git")
1721 (commit commit)))
1722 (file-name (git-file-name name version))
1723 (sha256
1724 (base32
1725 "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
1726 (build-system cmake-build-system)
1727 (inputs `(("glib" ,glib)
1728 ("xcb-util" ,xcb-util)))
1729 (native-inputs
1730 `(("python-docutils" ,python-docutils)
1731 ("pkg-config" ,pkg-config)))
1732 (arguments
1733 `(#:tests? #f))
1734 (synopsis "Use external screen locker on events")
1735 (description "@code{xss-lock} listens to X signals to fire up a
1736 user-defined screensaver. In effect this automatically locks the
1737 screen when closing a laptop lid or after a period of user inactivity (as set
1738 with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
1739 first. Additionally, xss-lock uses the inhibition logic to lock the screen
1740 before the system goes to sleep.")
1741 (home-page "https://bitbucket.org/raymonad/xss-lock")
1742 (license license:expat))))
1743
1744 (define-public python-pyperclip
1745 (package
1746 (name "python-pyperclip")
1747 (version "1.6.4")
1748 (source
1749 (origin
1750 (method url-fetch)
1751 (uri (pypi-uri "pyperclip" version))
1752 (sha256
1753 (base32
1754 "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
1755 (build-system python-build-system)
1756 (arguments
1757 '(#:tests? #f)) ; Not clear how to make tests pass.
1758 (inputs
1759 `(("xclip" ,xclip)
1760 ("xsel" ,xsel)))
1761 (home-page "https://github.com/asweigart/pyperclip")
1762 (synopsis "Python clipboard module")
1763 (description
1764 "Pyperclip is a clipboard module for Python, handling copy/pasting from
1765 the X11 clipboard")
1766 (license license:bsd-3)))
1767
1768 (define-public numlockx
1769 (package
1770 (name "numlockx")
1771 (version "1.2")
1772 (source (origin
1773 (method git-fetch)
1774 (uri (git-reference
1775 ;; It seems that upstream is gone.
1776 (url "https://github.com/rg3/numlockx")
1777 (commit version)))
1778 (file-name (git-file-name name version))
1779 (sha256
1780 (base32
1781 "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
1782 (build-system gnu-build-system)
1783 (inputs
1784 `(("xorg-server" ,xorg-server)))
1785 (home-page "https://github.com/rg3/numlockx")
1786 (synopsis "Turns on the numlock key in X11")
1787 (description "@command{numlockx} is a tiny program that lets you turn on
1788 the numlock key in X11. It can be called from the user's initialization files
1789 to automatically turn it on on login.")
1790 (license license:expat)))
1791
1792 (define-public xrandr-invert-colors
1793 (package
1794 (name "xrandr-invert-colors")
1795 (version "0.01")
1796 (source (origin
1797 (method git-fetch)
1798 (uri (git-reference
1799 (url "https://github.com/zoltanp/xrandr-invert-colors.git")
1800 (commit (string-append "v" version))))
1801 (file-name (git-file-name name version))
1802 (sha256
1803 (base32
1804 "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
1805 (build-system gnu-build-system)
1806 (arguments
1807 `(#:make-flags (list "CC=gcc")
1808 #:tests? #f ; there are none
1809 #:phases
1810 (modify-phases %standard-phases
1811 (delete 'configure)
1812 (replace 'install
1813 (lambda* (#:key outputs #:allow-other-keys)
1814 (let* ((out (assoc-ref outputs "out"))
1815 (bin (string-append out "/bin")))
1816 (install-file "xrandr-invert-colors.bin" bin)
1817 #t))))))
1818 (inputs
1819 `(("libxrandr" ,libxrandr)))
1820 (home-page "https://github.com/zoltanp/xrandr-invert-colors")
1821 (synopsis "Invert display colors")
1822 (description "This package provides a small utility for inverting the
1823 colors on all monitors attached to an XRandR-capable X11 display server.")
1824 (license license:gpl3+)))
1825
1826 (define-public sct
1827 (package
1828 (name "sct")
1829 (version "0.4")
1830 (source
1831 (origin
1832 (method url-fetch)
1833 (uri
1834 (string-append "https://www.umaxx.net/dl/sct-"
1835 version ".tar.gz"))
1836 (sha256
1837 (base32
1838 "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
1839 (build-system gnu-build-system)
1840 (arguments
1841 '(#:make-flags (list "CC=gcc")
1842 #:tests? #f ; No tests exist.
1843 #:phases
1844 (modify-phases %standard-phases
1845 (delete 'configure)
1846 (add-after 'unpack 'fix-sctd-paths
1847 (lambda* (#:key outputs inputs #:allow-other-keys)
1848 (let ((out (assoc-ref outputs "out"))
1849 (coreutils (assoc-ref inputs "coreutils"))
1850 (inetutils (assoc-ref inputs "inetutils"))
1851 (sed (assoc-ref inputs "sed")))
1852 (substitute* "sctd.sh"
1853 (("\\$\\(which sct\\)") (string-append out "/bin/sct"))
1854 (("date") (string-append coreutils "/bin/date"))
1855 (("printf") (string-append coreutils "/bin/printf"))
1856 (("sleep") (string-append coreutils "/bin/sleep"))
1857 (("logger") (string-append inetutils "/bin/logger"))
1858 (("sed") (string-append sed "/bin/sed"))))))
1859 (replace 'install
1860 (lambda* (#:key outputs #:allow-other-keys)
1861 (let ((out (assoc-ref outputs "out")))
1862 (install-file "sct" (string-append out "/bin"))
1863 (install-file "sctd.sh" (string-append out "/bin"))
1864 (install-file "sct.1" (string-append out "/man/man1"))
1865 (install-file "sctd.1" (string-append out "/man/man1"))
1866 (rename-file (string-append out "/bin/sctd.sh")
1867 (string-append out "/bin/sctd"))
1868 #t))))))
1869 (inputs
1870 `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
1871 ("inetutils" ,inetutils) ; sctd uses "logger"
1872 ("libxrandr" ,libxrandr)
1873 ("sed" ,sed))) ; sctd uses "sed"
1874 (home-page "https://www.umaxx.net")
1875 (synopsis "Set the color temperature of the screen")
1876 (description "@code{sct} is a lightweight utility to set the color
1877 temperature of the screen.")
1878 (license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
1879
1880 (define-public xsecurelock
1881 (package
1882 (name "xsecurelock")
1883 (version "1.6.0")
1884 (source (origin
1885 (method url-fetch)
1886 (uri (string-append
1887 "https://github.com/google/xsecurelock/releases"
1888 "/download/v" version "/xsecurelock-" version ".tar.gz"))
1889 (sha256
1890 (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
1891 (build-system gnu-build-system)
1892 (arguments
1893 '(#:configure-flags
1894 '("--with-pam-service-name=login"
1895 "--with-xkb"
1896 "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
1897 (native-inputs
1898 `(("pandoc" ,ghc-pandoc)
1899 ("pkg-config" ,pkg-config)))
1900 (inputs
1901 `(("fontconfig" ,fontconfig)
1902 ("libX11" ,libx11)
1903 ("libxcomposite" ,libxcomposite)
1904 ("libxext" ,libxext)
1905 ("libxfixes" ,libxfixes)
1906 ("libxft" ,libxft)
1907 ("libxmu" ,libxmu)
1908 ("libxrandr" ,libxrandr)
1909 ("libxscrnsaver" ,libxscrnsaver)
1910 ("linux-pam" ,linux-pam)))
1911 (home-page "https://github.com/google/xsecurelock")
1912 (synopsis "X11 screen lock utility with the primary goal of security")
1913 (description "@code{xsecurelock} is an X11 screen locker which uses
1914 a modular design to avoid the usual pitfalls of screen locking utility design.
1915
1916 As a consequence of the modular design, the usual screen locker service
1917 shouldn't be used with @code{xsecurelock}. Instead, you need to add a helper
1918 binary to setuid-binaries:
1919 @example
1920 (setuid-programs (cons*
1921 (file-append xsecurelock \"/libexec/xsecurelock/authproto_pam\")
1922 %setuid-programs))
1923 @end example")
1924 (license license:asl2.0)))
1925
1926 (define-public wl-clipboard
1927 (package
1928 (name "wl-clipboard")
1929 (version "2.0.0_beta2")
1930 (source
1931 (origin
1932 (method git-fetch)
1933 (uri (git-reference
1934 (url "https://github.com/bugaevc/wl-clipboard.git")
1935 (commit version)))
1936 (file-name (git-file-name name version))
1937 (sha256
1938 (base32 "0wyqbaph9v1v6lwfcjf8gjhdl70icpss4wapshzfxcz3l9m1p8hv"))))
1939 (build-system meson-build-system)
1940 (native-inputs
1941 `(("pkg-config" ,pkg-config)))
1942 (inputs
1943 `(("wayland" ,wayland)
1944 ("wayland-protocols" ,wayland-protocols)))
1945 (home-page "https://github.com/bugaevc/wl-clipboard")
1946 (synopsis "Command-line copy/paste utilities for Wayland")
1947 (description "Wl-clipboard is a set of command-line copy/paste utilities for
1948 Wayland.")
1949 (license license:gpl3+)))
1950
1951 (define-public autocutsel
1952 (package
1953 (name "autocutsel")
1954 (version "0.10.0")
1955 (source (origin
1956 (method url-fetch)
1957 (uri (string-append "https://github.com/sigmike/autocutsel"
1958 "/releases/download/" version "/"
1959 "autocutsel-" version ".tar.gz"))
1960 (sha256
1961 (base32
1962 "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2"))))
1963 (build-system gnu-build-system)
1964 (arguments
1965 '(#:tests? #f)) ; no "check" target
1966 (native-inputs `(("libx11" ,libx11)
1967 ("libxaw" ,libxaw)))
1968 (home-page "https://www.nongnu.org/autocutsel/")
1969 (synopsis "Automated X11 clipboard and cutbuffer synchronization")
1970 (description "@code{autocutsel} tracks changes in the server's cutbuffer
1971 and clipboard selection. When the clipboard is changed, it updates the
1972 cutbuffer. When the cutbuffer is changed, it owns the clipboard selection.
1973 The cutbuffer and clipboard selection are always synchronized.")
1974 (license license:gpl2+)))
1975
1976 (define-public jgmenu
1977 (package
1978 (name "jgmenu")
1979 (version "4.1.0")
1980 (source
1981 (origin
1982 (method git-fetch)
1983 (uri (git-reference
1984 (url "https://github.com/johanmalm/jgmenu.git")
1985 (commit (string-append "v" version))))
1986 (file-name (git-file-name name version))
1987 (sha256
1988 (base32
1989 "1wsh37rapb1bszlq36hvwxqvfds39hbvbl152m8as4zlh93wfvvk"))))
1990 (build-system gnu-build-system)
1991 (native-inputs
1992 `(("cppcheck" ,cppcheck)
1993 ("perl" ,perl)
1994 ("pkg-config" ,pkg-config)))
1995 (inputs
1996 `(("cairo" ,cairo)
1997 ("glib" ,glib)
1998 ("librsvg" ,librsvg)
1999 ("libx11" ,libx11)
2000 ("libxml2" ,libxml2)
2001 ("libxrandr" ,libxrandr)
2002 ("pango" ,pango)))
2003 (arguments
2004 `(#:phases
2005 (modify-phases %standard-phases
2006 (add-after 'unpack 'fix-tests
2007 (lambda _
2008 (substitute* "scripts/cppcheck-wrapper.sh"
2009 (("--library=/usr/share/cppcheck/cfg/gnu\\.cfg")
2010 ""))
2011 #t))
2012 (replace 'configure
2013 (lambda* (#:key outputs #:allow-other-keys)
2014 (setenv "CC" "gcc")
2015 (invoke "./configure"
2016 (string-append "--prefix=" (assoc-ref outputs "out")))
2017 #t)))))
2018 (synopsis "Simple X11 menu")
2019 (description
2020 "This is a simple menu for X11 designed for scripting and tweaking. It
2021 can optionally use some appearance settings from XSettings, tint2 and GTK.")
2022 (home-page "https://jgmenu.github.io/")
2023 (license license:gpl2)))
2024
2025 (define-public xwallpaper
2026 (package
2027 (name "xwallpaper")
2028 (version "0.6.4")
2029 (source
2030 (origin
2031 (method git-fetch)
2032 (uri (git-reference
2033 (url "https://github.com/stoeckmann/xwallpaper")
2034 (commit (string-append "v" version))))
2035 (file-name (git-file-name name version))
2036 (sha256
2037 (base32
2038 "175fzifvia58vah2x7509drvfn3xfv5d9szgh9x1w1a1w8rcs2hx"))))
2039 (build-system gnu-build-system)
2040 (native-inputs
2041 `(("autoconf" ,autoconf)
2042 ("automake" ,automake)
2043 ("pkg-config" ,pkg-config)))
2044 (inputs
2045 `(("libjpeg-turbo" ,libjpeg-turbo)
2046 ("libpng" ,libpng)
2047 ("libxpm" ,libxpm)
2048 ("pixman" ,pixman)
2049 ("xcb-util" ,xcb-util)
2050 ("xcb-util-image" ,xcb-util-image)))
2051 (home-page "https://github.com/stoeckmann/xwallpaper")
2052 (synopsis "Wallpaper setting utility for X")
2053 (description
2054 "The xwallpaper utility allows you to set image files as your X
2055 wallpaper. JPEG, PNG, and XPM file formats are supported.
2056
2057 The wallpaper is also advertised to programs which support semi-transparent
2058 backgrounds.")
2059 (license license:isc)))
2060
2061 (define-public xwrits
2062 (package
2063 (name "xwrits")
2064 (version "2.26")
2065 (source
2066 (origin
2067 (method url-fetch)
2068 (uri (string-append "https://www.lcdf.org/~eddietwo/xwrits/"
2069 "xwrits-" version ".tar.gz"))
2070 (sha256
2071 (base32 "1n7y0fqpcvmzznvbsn14hzy5ddaa3lilm8aw6ckscqndnh4lijma"))))
2072 (build-system gnu-build-system)
2073 (arguments
2074 `(#:phases
2075 (modify-phases %standard-phases
2076 (add-after 'install 'install-docs
2077 (lambda* (#:key outputs #:allow-other-keys)
2078 (let* ((out (assoc-ref outputs "out"))
2079 (doc (string-append out "/share/doc/xwrits")))
2080 (install-file "GESTURES" doc)
2081 (install-file "README" doc)
2082 #t))))))
2083 (inputs
2084 `(("libx11" ,libx11)
2085 ("libxinerama" ,libxinerama)))
2086 (home-page "https://www.lcdf.org/~eddietwo/xwrits/")
2087 (synopsis "Reminds you to take wrist breaks")
2088 (description "Xwrits reminds you to take wrist breaks for prevention or
2089 management of repetitive stress injuries. When you should take a break, it
2090 pops up an X window, the warning window. You click on the warning window,
2091 then take a break. The window changes appearance while you take the break.
2092 It changes again when your break is over. Then you just resume typing.
2093 Xwrits hides itself until you should take another break.")
2094 (license license:gpl2)))
2095
2096 (define-public xsettingsd
2097 (package
2098 (name "xsettingsd")
2099 (version "1.0.0")
2100 (source
2101 (origin
2102 (method git-fetch)
2103 (uri (git-reference
2104 (url "https://github.com/derat/xsettingsd.git")
2105 (commit (string-append "v" version))))
2106 (file-name (git-file-name name version))
2107 (sha256
2108 (base32
2109 "05m4jlw0mgwp24cvyklncpziq1prr2lg0cq9c055sh4n9d93d07v"))))
2110 (build-system scons-build-system)
2111 (inputs
2112 `(("libx11" ,libx11)))
2113 (native-inputs
2114 `(("pkg-config" ,pkg-config)
2115 ("googletest" ,googletest)
2116 ("googletest-source" ,(package-source googletest))))
2117 (arguments
2118 `(#:scons ,scons-python2
2119 #:scons-flags
2120 (list "CC=gcc")
2121 #:phases
2122 (modify-phases %standard-phases
2123 (add-before 'build 'patch-sconstruct
2124 (lambda* (#:key inputs #:allow-other-keys)
2125 (substitute* "SConstruct"
2126 ;; scons doesn't pick up environment variables automatically
2127 ;; so it needs help to find path variables
2128 (("env = Environment\\(")
2129 "env = Environment(
2130 ENV = {
2131 'PATH': os.environ['PATH'],
2132 'CPATH': os.environ['CPATH'],
2133 'LIBRARY_PATH': os.environ['LIBRARY_PATH'],
2134 'PKG_CONFIG_PATH': os.environ['PKG_CONFIG_PATH']
2135 },")
2136 ;; Update path to gtest source files used in tests
2137 (("/usr/src/gtest") (string-append
2138 (assoc-ref inputs "googletest-source")
2139 "/googletest"))
2140 ;; Exclude one warning that causes a build error
2141 (("-Werror") "-Werror -Wno-error=sign-compare"))
2142 #t))
2143 ;; The SConstruct script doesn't configure installation so
2144 ;; binaries must be copied to the output path directly
2145 (replace 'install
2146 (lambda* (#:key outputs #:allow-other-keys)
2147 (let* ((out (assoc-ref outputs "out"))
2148 (bin (string-append out "/bin")))
2149 (mkdir-p bin)
2150 (install-file "xsettingsd" bin)
2151 (install-file "dump_xsettings" bin)
2152 #t))))))
2153 (home-page "https://github.com/derat/xsettingsd")
2154 (synopsis "Xorg settings daemon")
2155 (description "@command{xsettingsd} is a lightweight daemon that provides settings to
2156 Xorg applications via the XSETTINGS specification. It is used for defining
2157 font and theme settings when a complete desktop environment (GNOME, KDE) is
2158 not running. With a simple @file{.xsettingsd} configuration file one can avoid
2159 configuring visual settings in different UI toolkits separately.")
2160 (license license:bsd-3)))
2161
2162 (define-public clipnotify
2163 (package
2164 (name "clipnotify")
2165 (version "1.0.2")
2166 (source
2167 (origin
2168 (method git-fetch)
2169 (uri (git-reference
2170 (url "https://github.com/cdown/clipnotify.git")
2171 (commit version)))
2172 (file-name (git-file-name name version))
2173 (sha256
2174 (base32
2175 "1v3ydm5ljy8z1savmdxrjyx7a5bm5013rzw80frp3qbbjaci0wbg"))))
2176 (build-system gnu-build-system)
2177 (arguments
2178 `(#:phases
2179 (modify-phases %standard-phases
2180 (delete 'configure)
2181 (replace 'install
2182 (lambda* (#:key inputs outputs #:allow-other-keys)
2183 (let* ((out (assoc-ref outputs "out"))
2184 (bin (string-append out "/bin"))
2185 (doc (string-append %output "/share/doc/" ,name "-" ,version)))
2186 (install-file "clipnotify" bin)
2187 (install-file "README.md" doc)
2188 #t))))
2189 #:make-flags (list "CC=gcc")
2190 ;; the package provides no test suite:
2191 #:tests? #f))
2192 (inputs
2193 `(("libx11" ,libx11)
2194 ("libXfixes" ,libxfixes)))
2195 (home-page "https://github.com/cdown/clipnotify")
2196 (synopsis "Notify on new X clipboard events")
2197 (description "@command{clipnotify} is a simple program that, using the
2198 XFIXES extension to X11, waits until a new selection is available and then
2199 exits.
2200
2201 It was primarily designed for clipmenu, to avoid polling for new selections.
2202
2203 @command{clipnotify} doesn't try to print anything about the contents of the
2204 selection, it just exits when it changes. This is intentional -- X11's
2205 selection API is verging on the insane, and there are plenty of others who
2206 have already lost their sanity to bring us xclip/xsel/etc. Use one of those
2207 tools to complement clipnotify.")
2208 (license license:public-domain)))
2209
2210 (define-public clipmenu
2211 (let ((commit "bcbe7b144598db4a103f14e8408c4b7327d6d5e1")
2212 (revision "1"))
2213 (package
2214 (name "clipmenu")
2215 (version (string-append "6.0.1-"
2216 revision "." (string-take commit 7)))
2217 (source
2218 (origin
2219 (method git-fetch)
2220 (uri (git-reference
2221 (url "https://github.com/cdown/clipmenu.git")
2222 (commit commit)))
2223 (file-name (git-file-name name version))
2224 (sha256
2225 (base32
2226 "0053j4i14lz5m2bzc5sch5id5ilr1bl196mp8fp0q8x74w3vavs9"))))
2227 (build-system gnu-build-system)
2228 (arguments
2229 `(#:phases
2230 (modify-phases %standard-phases
2231 (delete 'configure)
2232 (delete 'build)
2233 (replace 'install
2234 (lambda* (#:key inputs outputs #:allow-other-keys)
2235 (let* ((out (assoc-ref outputs "out"))
2236 (bin (string-append out "/bin"))
2237 (doc (string-append %output "/share/doc/"
2238 ,name "-" ,version)))
2239 (install-file "clipdel" bin)
2240 (install-file "clipmenu" bin)
2241 (install-file "clipmenud" bin)
2242 (install-file "README.md" doc)
2243 #t)))
2244 (add-after 'install 'wrap-script
2245 (lambda* (#:key inputs outputs #:allow-other-keys)
2246 (let* ((out (assoc-ref outputs "out"))
2247 (clipnotify (assoc-ref inputs "clipnotify"))
2248 (coreutils-minimal (assoc-ref inputs "coreutils-minimal"))
2249 (gawk (assoc-ref inputs "gawk"))
2250 (util-linux (assoc-ref inputs "util-linux"))
2251 (xdotool (assoc-ref inputs "xdotool"))
2252 (xsel (assoc-ref inputs "xsel")))
2253 (for-each
2254 (lambda (prog)
2255 (wrap-script (string-append out "/bin/" prog)
2256 `("PATH" ":" prefix
2257 ,(map (lambda (dir)
2258 (string-append dir "/bin"))
2259 (list clipnotify coreutils-minimal
2260 gawk util-linux xdotool xsel)))))
2261 '("clipmenu" "clipmenud" "clipdel")))
2262 #t))
2263 (replace 'check
2264 (lambda* (#:key inputs outputs #:allow-other-keys)
2265 ;; substitute a shebang appearing inside a string (the test
2266 ;; file writes this string to a temporary file):
2267 (substitute* "tests/test-clipmenu"
2268 (("#!/usr/bin/env bash")
2269 (string-append "#!" (which "bash"))))
2270 (invoke "tests/test-clipmenu")
2271 #t)))))
2272 (inputs
2273 `(("clipnotify" ,clipnotify)
2274 ("coreutils-minimal" ,coreutils-minimal)
2275 ("gawk" ,gawk)
2276 ("guile" ,guile-3.0) ; for wrap-script
2277 ("util-linux" ,util-linux)
2278 ("xdotool" ,xdotool)
2279 ("xsel" ,xsel)))
2280 (home-page "https://github.com/cdown/clipmenu")
2281 (synopsis "Simple clipboard manager using dmenu or rofi and xsel")
2282 (description "Start @command{clipmenud}, then run @command{clipmenu} to
2283 select something to put on the clipboard.
2284
2285 When @command{clipmenud} detects changes to the clipboard contents, it writes
2286 them out to the cache directory. @command{clipmenu} reads the cache directory
2287 to find all available clips and launches @command{dmenu} (or @command{rofi},
2288 depending on the value of @code{CM_LAUNCHER}) to let the user select a clip.
2289 After selection, the clip is put onto the PRIMARY and CLIPBOARD X selections.")
2290 (license license:public-domain))))
2291
2292 (define-public kbdd
2293 (package
2294 (name "kbdd")
2295 (version "0.7.1")
2296 (source
2297 (origin
2298 (method git-fetch)
2299 (uri (git-reference
2300 (url "https://github.com/qnikst/kbdd.git")
2301 (commit (string-append "v" version))))
2302 (file-name (git-file-name name version))
2303 (sha256
2304 (base32
2305 "0qkq75grbd4wkx4nlvswgavpijk9ad0pzqyj89a0ayjsbsn36pqy"))))
2306 (build-system gnu-build-system)
2307 (native-inputs
2308 `(("autoconf" ,autoconf)
2309 ("automake" ,automake)
2310 ("glib" ,glib "bin")
2311 ("pkg-config" ,pkg-config)))
2312 (inputs
2313 `(("dbus-glib", dbus-glib)
2314 ("glib" ,glib)
2315 ("libx11" ,libx11)))
2316 (home-page "https://github.com/qnikst/kbdd")
2317 (synopsis "Per-window keyboard layout switching daemon for X")
2318 (description "@command{kbdd} is a simple keyboard layout switching
2319 program, which is designed to run in an X11 session and remember
2320 keyboard layouts on a per-window basis. That can be very handy for a
2321 user of a non-US keyboard who does not want to jump through layouts back
2322 and forth while typing in terminals (mostly in a latin alphabet) and
2323 some kind of chat (in native language).
2324
2325 @command{kbdd} also supports D-Bus signals, which makes it possible to
2326 create layout indicator widgets.")
2327 (license license:bsd-2)))
2328
2329 (define-public j4-dmenu-desktop
2330 (package
2331 (name "j4-dmenu-desktop")
2332 (version "2.17")
2333 (source (origin
2334 (method git-fetch)
2335 (uri (git-reference
2336 (url "https://github.com/enkore/j4-dmenu-desktop.git")
2337 (commit (string-append "r" version))))
2338 (file-name (git-file-name name version))
2339 (sha256
2340 (base32
2341 "0v23fimkn83dcm5p53y2ymhklff3kwppxhf75sm8xmswrzkixpgc"))))
2342 (build-system cmake-build-system)
2343 (native-inputs
2344 `(("catch2" ,catch-framework2)))
2345 (arguments
2346 `(#:configure-flags '("-DWITH_GIT_CATCH=off")
2347 #:phases
2348 (modify-phases %standard-phases
2349 (replace 'check
2350 (lambda _
2351 (invoke "./j4-dmenu-tests" "exclude:SearchPath/XDG_DATA_HOME"))))))
2352 (synopsis "Fast desktop menu")
2353 (description
2354 "j4-dmenu-desktop is a replacement for i3-dmenu-desktop. Its purpose
2355 is to find @file{.desktop} files and offer you a menu to start an application
2356 using @command{dmenu}.")
2357 (home-page "https://github.com/enkore/j4-dmenu-desktop")
2358 (license license:gpl3+)))