gnu: libdrm: Fix configure-flags.
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
CommitLineData
3c156c8a
JD
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
56ac2bf4 3;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
3c156c8a 4;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
9f1d33be 5;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
189be331 6;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
751f6871 7;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
42f2c2b9 8;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
f1f7049e 9;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
998b8c07 10;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
6645753b 11;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
6f74aecd 12;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
4cbbb160 13;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
19110787 14;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
71ca0539 15;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
6cfd1a68 16;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
0ea0452c 17;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
01278f16 18;;; Copyright © 2016 Petter <petter@mykolab.ch>
37447422 19;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
4a78fd46 20;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
7953675f 21;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
f021382b 22;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
1d752e43 23;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
af1e3dfe 24;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
95bf2fb6 25;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
d748cb5f 26;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
d852cf9e 27;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
3c156c8a
JD
28;;;
29;;; This file is part of GNU Guix.
30;;;
31;;; GNU Guix is free software; you can redistribute it and/or modify it
32;;; under the terms of the GNU General Public License as published by
33;;; the Free Software Foundation; either version 3 of the License, or (at
34;;; your option) any later version.
35;;;
36;;; GNU Guix is distributed in the hope that it will be useful, but
37;;; WITHOUT ANY WARRANTY; without even the implied warranty of
38;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39;;; GNU General Public License for more details.
40;;;
41;;; You should have received a copy of the GNU General Public License
42;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
43
44(define-module (gnu packages xdisorg)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix packages)
47 #:use-module (guix download)
37447422 48 #:use-module (guix git-download)
18ad5bff 49 #:use-module (guix utils)
9f1d33be 50 #:use-module (guix build-system cmake)
3c156c8a 51 #:use-module (guix build-system gnu)
f1f7049e 52 #:use-module (guix build-system glib-or-gtk)
4382cef2 53 #:use-module (guix build-system meson)
ae05b185 54 #:use-module (guix build-system python)
3c156c8a 55 #:use-module (gnu packages)
99828fa7 56 #:use-module (gnu packages documentation)
d852cf9e
NN
57 #:use-module (gnu packages admin)
58 #:use-module (gnu packages base)
b4c400a7 59 #:use-module (gnu packages algebra)
b2193c35 60 #:use-module (gnu packages autotools)
23e12d9d 61 #:use-module (gnu packages check)
3c156c8a
JD
62 #:use-module (gnu packages compression)
63 #:use-module (gnu packages image)
64 #:use-module (gnu packages pkg-config)
23e12d9d 65 #:use-module (gnu packages flex)
95bf2fb6 66 #:use-module (gnu packages freedesktop)
ae05b185 67 #:use-module (gnu packages gettext)
9f1d33be 68 #:use-module (gnu packages gl)
2e88e089 69 #:use-module (gnu packages glib)
751f6871 70 #:use-module (gnu packages gnome)
01614de1 71 #:use-module (gnu packages icu4c)
d748cb5f 72 #:use-module (gnu packages man)
937b71df 73 #:use-module (gnu packages maths)
4493a3c2 74 #:use-module (gnu packages m4)
1ef3f91a 75 #:use-module (gnu packages ncurses)
de51bf58 76 #:use-module (gnu packages perl)
ae05b185 77 #:use-module (gnu packages python)
44d10b1f 78 #:use-module (gnu packages python-xyz)
ab69d9ac 79 #:use-module (gnu packages linux)
b4c400a7 80 #:use-module (gnu packages gl)
76212b57 81 #:use-module (gnu packages guile)
f1f7049e
AW
82 #:use-module (gnu packages xml)
83 #:use-module (gnu packages gtk)
cf60e76a 84 #:use-module (gnu packages xorg)
1f42989e
EF
85 #:use-module (gnu packages bison)
86 #:use-module (ice-9 match))
3c156c8a 87
3c156c8a
JD
88;; packages outside the x.org system proper
89
ae05b185
ML
90(define-public arandr
91 (package
92 (name "arandr")
16d8f9be 93 (version "0.1.9")
ae05b185
ML
94 (source (origin
95 (method url-fetch)
96 (uri (string-append "http://christian.amsuess.com/tools/" name
97 "/files/" name "-" version ".tar.gz"))
98 (sha256
99 (base32
04fa4cdf
LC
100 "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
101 (modules '((guix build utils)))
102 (snippet
6cbee49d
MW
103 '(begin
104 ;; Do not record a timestamp and file name in gzipped man
105 ;; pages (this is equivalent to 'gzip --no-name'.)
106 (substitute* "setup.py"
107 (("gzip\\.open\\(gzfile, 'w', 9\\)")
108 "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))
109 #t))))
ae05b185 110 (build-system python-build-system)
b951e26f
RW
111 (arguments
112 `(#:python ,python-2 ;incompatible with python 3
28fd275c
AI
113 #:phases
114 (modify-phases %standard-phases
115 (add-before 'build 'configure
116 (lambda* (#:key inputs #:allow-other-keys)
117 (substitute* "screenlayout/xrandr.py"
118 (("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
119 "/bin/xrandr\"")))
120 #t)))
b5244fcb 121 #:tests? #f)) ;no tests
b951e26f
RW
122 (inputs `(("pygtk" ,python2-pygtk)
123 ("xrandr" ,xrandr)))
b94a6ca0 124 (native-inputs `(("gettext" ,gettext-minimal)
f3b98f4f 125 ("python-docutils" ,python2-docutils)))
ae05b185
ML
126 (home-page "https://christian.amsuess.com/tools/arandr/")
127 (synopsis "Another RandR graphical user interface")
128 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
129 (description "ARandR is designed to provide a simple visual front end for
130the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
131shown graphically and can be changed in a drag-and-drop way. Configurations
132are saved as executable shell scripts which can be loaded without using this
133program.")
134 (license license:gpl3+)))
135
d748cb5f
PN
136(define-public autorandr
137 ;; Use latest commit since 1.7 lacks many new features such as the
138 ;; autorandr_launcher.
139 (let ((commit "b484c0ea9c9a4838278bbd661a7cc384333c1df8"))
140 (package
141 (name "autorandr")
142 (version (git-version "1.7" "1" commit))
143 (home-page "https://github.com/phillipberndt/autorandr")
144 (source
145 (origin
146 (method git-fetch)
147 (uri (git-reference
148 (url home-page)
149 (commit commit)))
150 (file-name (git-file-name name version))
151 (sha256
152 (base32
153 "0da17kzsisjv3s993j5idkk1n2d2cvjdn7pngs2b0ic1r2h5z02h"))))
154 (build-system python-build-system)
155 (native-inputs
156 `(("man-db" ,man-db)))
157 (inputs
158 `(("xrandr" ,xrandr)
159 ("libxcb" ,libxcb)))
160 (arguments
161 `(#:phases
162 (modify-phases %standard-phases
163 (add-before 'build 'configure
164 (lambda* (#:key inputs #:allow-other-keys)
165 (substitute* "autorandr.py"
166 (("popen\\(\"xrandr") (string-append "popen(\""
167 (assoc-ref inputs "xrandr")
168 "/bin/xrandr"))
169 (("\\[\"xrandr") (string-append "[\""
170 (assoc-ref inputs "xrandr")
171 "/bin/xrandr")))
172 #t))
173 (add-after 'install 'install-contrib
174 (lambda* (#:key outputs #:allow-other-keys)
175 (invoke "make"
176 (string-append "DESTDIR=" (assoc-ref outputs "out"))
177 "PREFIX="
178 "BASH_COMPLETIONS_DIR=etc/bash_completiond.d"
179 "install_manpage"
180 "install_bash_completion"
181 "install_launcher"))))))
182 (synopsis "Auto-detect connected displays and load appropiate setup")
183 (description "Autorandr wraps around xrandr to help with X11
184multi-screen configuration management. It allows the user to create profiles
185for various multi-screen setups. Autorandr automatically detects the profiles
186that can be activated based on the connected hardware. Hook scripts can be
187used to further tweak the behaviour of the different profiles.")
188 (license license:gpl3+))))
189
de878f1b
JD
190(define-public xclip
191 (package
192 (name "xclip")
b2193c35 193 (version "0.13")
de878f1b 194 (source
2d8387c3
RW
195 (origin
196 (method git-fetch)
197 (uri (git-reference
198 (url "https://github.com/astrand/xclip.git")
199 (commit version)))
200 (file-name (git-file-name name version))
201 (sha256
202 (base32
203 "0q0hmvcjlv8arhh1pzhja2wglyj6n7z209jnpnzd281kqqv4czcs"))))
de878f1b
JD
204 (build-system gnu-build-system)
205 (arguments
189be331 206 '(#:tests? #f)) ;there is no test suite
b2193c35
MB
207 (native-inputs
208 `(("autoconf" ,autoconf)
209 ("automake" ,automake)))
de878f1b
JD
210 (inputs `(("libxmu" ,libxmu)
211 ("libxt" ,libxt)))
b2193c35 212 (home-page "https://github.com/astrand/xclip")
de878f1b
JD
213 (synopsis "Command line interface to X11 clipboard")
214 (description "Xclip is a command line interface to the X11 clipboard. It
215can also be used for copying files, as an alternative to sftp/scp, thus
216avoiding password prompts when X11 forwarding has already been setup.")
217 (license license:gpl2+)))
218
cf60e76a
DM
219(define-public libxkbcommon
220 (package
221 (name "libxkbcommon")
1b9eb93a 222 (version "0.8.4")
cf60e76a
DM
223 (source (origin
224 (method url-fetch)
dcbdd878 225 (uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
cf60e76a
DM
226 version ".tar.xz"))
227 (sha256
228 (base32
1b9eb93a 229 "12vc91ydhphd5sddz15560r41l7k0i7mq6nma8kkbzdp6bwwzpb0"))))
cf60e76a
DM
230 (build-system gnu-build-system)
231 (inputs
232 `(("libx11" ,libx11)
233 ("libxcb" ,libxcb)
234 ("xkeyboard-config" ,xkeyboard-config)))
235 (native-inputs
236 `(("bison" ,bison)
237 ("pkg-config" ,pkg-config)))
238 (arguments
239 `(#:configure-flags
240 (list (string-append "--with-xkb-config-root="
241 (assoc-ref %build-inputs "xkeyboard-config")
242 "/share/X11/xkb")
243 (string-append "--with-x-locale-root="
244 (assoc-ref %build-inputs "libx11")
245 "/share/X11/locale"))))
fbb4755c 246 (home-page "https://xkbcommon.org/")
cf60e76a
DM
247 (synopsis "Library to handle keyboard descriptions")
248 (description "Xkbcommon is a library to handle keyboard descriptions,
249including loading them from disk, parsing them and handling their
250state. It is mainly meant for client toolkits, window systems, and other
251system applications; currently that includes Wayland, kmscon, GTK+, Qt,
252Clutter, and more. Despite the name, it is not currently used by anything
253X11 (yet).")
254 (license (license:x11-style "file://COPYING"
255 "See 'COPYING' in the distribution."))))
256
e91f9d40 257(define-public libfakekey
258 (package
259 (name "libfakekey")
260 (version "0.1")
261 (source
262 (origin
263 (method url-fetch)
264 (uri (string-append "https://downloads.yoctoproject.org/releases"
265 "/matchbox/libfakekey/" version "/libfakekey-"
266 version ".tar.bz2"))
267 (sha256
268 (base32
269 "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
270 (build-system gnu-build-system)
271 (arguments
272 `(#:make-flags (list "AM_LDFLAGS=-lX11")))
273 (native-inputs
274 `(("pkg-config" ,pkg-config)))
275 (inputs
276 `(("libxtst" ,libxtst)
277 ("libx11" ,libx11)))
278 (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
279 (synopsis "X virtual keyboard library")
280 (description
281 "Libfakekey is a virtual keyboard library for X.")
282 (license license:gpl2)))
283
de51bf58
JD
284(define-public xdotool
285 (package
286 (name "xdotool")
ad430c71 287 (version "3.20160805.1")
de51bf58
JD
288 (source
289 (origin
290 (method url-fetch)
291 (uri (string-append
6f74aecd
CAW
292 "https://github.com/jordansissel/xdotool/releases/download/v"
293 version "/xdotool-" version ".tar.gz"))
de51bf58
JD
294 (sha256
295 (base32
ad430c71 296 "1a6c1zr86zb53352yxv104l76l8x21gfl2bgw6h21iphxpv5zgim"))))
de51bf58
JD
297 (build-system gnu-build-system)
298 (arguments
299 '(#:tests? #f ; Test suite requires a lot of black magic
ca0d2a63 300 #:phases
c237480b
EF
301 (modify-phases %standard-phases
302 (replace 'configure
303 (lambda* (#:key outputs #:allow-other-keys #:rest args)
ad430c71
MB
304 (let ((out (assoc-ref outputs "out")))
305 (mkdir-p (string-append out "/lib"))
306 (setenv "PREFIX" out)
307 (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out "/lib"))
c6bf07d1
MW
308 (setenv "CC" "gcc")
309 #t))))))
de51bf58
JD
310 (native-inputs `(("perl" ,perl))) ; for pod2man
311 (inputs `(("libx11" ,libx11)
312 ("libxext" ,libxext)
313 ("libxi" ,libxi)
314 ("libxinerama" ,libxinerama)
6f74aecd
CAW
315 ("libxtst" ,libxtst)
316 ("libxkbcommon" ,libxkbcommon)))
de51bf58
JD
317 (home-page "http://www.semicomplete.com/projects/xdotool")
318 (synopsis "Fake keyboard/mouse input, window management, and more")
319 (description "Xdotool lets you simulate keyboard input and mouse activity,
320move and resize windows, etc. It does this using X11's XTEST extension and
321other Xlib functions. Additionally, you can search for windows and move,
322resize, hide, and modify window properties like the title. If your window
323manager supports it, you can use xdotool to switch desktops, move windows
324between desktops, and change the number of desktops.")
325 (license license:bsd-3)))
326
3c156c8a
JD
327(define-public xeyes
328 (package
329 (name "xeyes")
fa91433d 330 (version "1.1.2")
3c156c8a 331 (source
fa91433d
TGR
332 (origin
333 (method url-fetch)
334 (uri (string-append "https://www.x.org/releases/individual/app/"
335 name "-" version ".tar.bz2"))
336 (sha256
337 (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
3c156c8a
JD
338 (build-system gnu-build-system)
339 (inputs
340 `(("libxext" ,libxext)
341 ("libxmu" ,libxmu)
fa91433d 342 ("libxrender" ,libxrender)
3c156c8a
JD
343 ("libxt" ,libxt)))
344 (native-inputs
345 `(("pkg-config" ,pkg-config)))
5e996128 346 (home-page "https://www.x.org/") ; no dedicated Xeyes page exists
3c156c8a
JD
347 (synopsis "Follow-the-mouse X demo")
348 (description "Xeyes is a demo program for x.org. It shows eyes
349following the mouse.")
350 (license license:x11)))
351
352
353(define-public pixman
354 (package
355 (name "pixman")
ef2a540a 356 (version "0.36.0")
997f86e9
LC
357 (source (origin
358 (method url-fetch)
359 (uri (string-append
c8b69863 360 "https://www.cairographics.org/releases/pixman-"
997f86e9
LC
361 version ".tar.gz"))
362 (sha256
363 (base32
ef2a540a 364 "1blzrx50ssdv0pn56hcv2v0zw0vrjwj1sx22pkgjls1p9n6rr88w"))
35bbe88b 365 (patches (search-patches "pixman-CVE-2016-5296.patch"))))
3c156c8a
JD
366 (build-system gnu-build-system)
367 (inputs
997f86e9
LC
368 `(("libpng" ,libpng)
369 ("zlib" ,zlib)))
3c156c8a 370 (native-inputs
997f86e9 371 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
372 (home-page "http://www.pixman.org/")
373 (synopsis "Low-level pixel manipulation library")
374 (description "Pixman is a low-level software library for pixel
375manipulation, providing features such as image compositing and trapezoid
376rasterisation.")
377 (license license:x11)))
378
3c156c8a
JD
379(define-public libdrm
380 (package
381 (name "libdrm")
867fd0da 382 (version "2.4.97")
3c156c8a
JD
383 (source
384 (origin
385 (method url-fetch)
386 (uri (string-append
5cc3096c 387 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
388 version
389 ".tar.bz2"))
390 (sha256
0b684f49 391 (base32
867fd0da 392 "08yimlp6jir1rs5ajgdx74xa5qdzcqahpdzdk0rmkmhh7vdcrl3p"))
fc1adab1 393 (patches (search-patches "libdrm-symbol-check.patch"))))
34b81a9c 394 (build-system meson-build-system)
1f42989e
EF
395 (arguments
396 `(#:configure-flags
397 '(,@(match (%current-system)
c022edf6
EF
398 ((or "armhf-linux" "aarch64-linux")
399 '("-Dexynos=true"
400 "-Domap=true"
401 "-Detnaviv=true"
402 "-Dtegra=true"
34b81a9c 403 "-Dfreedreno-kgsl=true"))
1f42989e 404 (_ '())))))
3c156c8a 405 (inputs
53e16a5a 406 `(("libpciaccess" ,libpciaccess)))
3c156c8a 407 (native-inputs
53e16a5a
MB
408 `(("pkg-config" ,pkg-config)))
409 (home-page "https://dri.freedesktop.org/wiki/")
3c156c8a
JD
410 (synopsis "Direct rendering userspace library")
411 (description "The Direct Rendering Infrastructure, also known as the DRI,
412is a framework for allowing direct access to graphics hardware under the
413X Window System in a safe and efficient manner. It includes changes to the
414X server, to several client libraries, and to the kernel (DRM, Direct
415Rendering Manager). The most important use for the DRI is to create fast
416OpenGL implementations providing hardware acceleration for Mesa.
417Several 3D accelerated drivers have been written to the DRI specification,
418including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
419and Matrox.")
420 (license license:x11)))
421
422
3c156c8a
JD
423(define-public mtdev
424 (package
425 (name "mtdev")
1f1e620f 426 (version "1.1.5")
3c156c8a
JD
427 (source
428 (origin
429 (method url-fetch)
430 (uri (string-append
431 "http://bitmath.org/code/mtdev/mtdev-"
432 version ".tar.bz2"))
433 (sha256
1f1e620f
EF
434 (base32
435 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
436 (build-system gnu-build-system)
437 (home-page "http://bitmath.org/code/mtdev/")
438 (synopsis "Multitouch protocol translation library")
439 (description "Mtdev is a stand-alone library which transforms all
440variants of kernel MT events to the slotted type B protocol. The events
441put into mtdev may be from any MT device, specifically type A without
442contact tracking, type A with contact tracking, or type B with contact
443tracking.")
444 (license license:x11)))
a693bba1
SB
445
446(define-public startup-notification
447 (package
448 (name "startup-notification")
449 (version "0.12")
450 (source
451 (origin
452 (method url-fetch)
5cc3096c 453 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
454 "/releases/" name "-" version ".tar.gz"))
455 (sha256
456 (base32
457 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
458 (build-system gnu-build-system)
459 (native-inputs `(("pkg-config" ,pkg-config)))
460 (inputs
461 `(("libx11" ,libx11)
462 ("xcb-util" ,xcb-util)))
57e7d748 463 (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
a693bba1
SB
464 (synopsis "Application startup notification and feedback library")
465 (description
466 "Startup-notification contains a reference implementation of the startup
467notification protocol. The reference implementation is mostly under an X Window
468System style license, and has no special dependencies.")
469 ;; Most of the code is provided under x11 license.
470 (license license:lgpl2.0+)))
2e88e089
AK
471
472(define-public wmctrl
473 (package
474 (name "wmctrl")
475 (version "1.07")
476 (source (origin
477 (method url-fetch)
478 (uri (string-append
d6420533 479 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
480 version ".tar.gz"))
481 (sha256
482 (base32
483 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 484 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
485 (build-system gnu-build-system)
486 (arguments
487 '(#:configure-flags
488 (list (string-append "--mandir="
489 (assoc-ref %outputs "out")
490 "/share/man"))))
491 (native-inputs
492 `(("pkg-config" ,pkg-config)))
493 (inputs
494 `(("libx11" ,libx11)
495 ("libxmu" ,libxmu)
496 ("glib" ,glib)))
497 (home-page "http://tomas.styblo.name/wmctrl/")
498 (synopsis "Command-line tool to control X window managers")
499 (description
500 "Wmctrl allows to interact with an X window manager that is compatible
501with the EWMH/NetWM specification. It can query the window manager for
502information, and request for certain window management actions (resize and
e881752c 503move windows, switch between desktops, etc.).")
2e88e089 504 (license license:gpl2+)))
1410f342
AK
505
506(define-public scrot
507 (package
508 (name "scrot")
7953675f
TGR
509 (version "0.9")
510 (source
511 (origin
512 (method git-fetch)
513 (uri
514 (git-reference
515 (url "https://github.com/resurrecting-open-source-projects/scrot.git")
516 (commit version)))
517 (sha256
518 (base32 "1dg0pnmk09p7zlbyxv7d40vf54amrv73y976ds5p7096x6lmlndy"))))
1410f342 519 (build-system gnu-build-system)
7953675f
TGR
520 (native-inputs
521 `(("autoconf" ,autoconf)
522 ("automake" ,automake)))
1410f342 523 (inputs
7953675f
TGR
524 `(("giblib" ,giblib)
525 ("libx11" ,libx11)))
526 (home-page "https://github.com/resurrecting-open-source-projects/scrot")
1410f342
AK
527 (synopsis "Command-line screen capture utility for X Window System")
528 (description
529 "Scrot allows to save a screenshot of a full screen, a window or a part
530of the screen selected by mouse.")
531 ;; This license removes a clause about X Consortium from the original
532 ;; X11 license.
533 (license (license:x11-style "file://COPYING"
534 "See 'COPYING' in the distribution."))))
4a01b30b 535
9f1d33be
AK
536(define-public slop
537 (package
538 (name "slop")
89f9ffff 539 (version "7.4")
9f1d33be 540 (source (origin
25d09f60
RW
541 (method git-fetch)
542 (uri (git-reference
543 (url "https://github.com/naelstrof/slop.git")
544 (commit (string-append "v" version))))
545 (file-name (git-file-name name version))
9f1d33be
AK
546 (sha256
547 (base32
25d09f60 548 "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
9f1d33be 549 (build-system cmake-build-system)
937b71df 550 (arguments
e1c014d7 551 '(#:tests? #f)) ; no "check" target
9f1d33be 552 (inputs
eb2b5f9d
MB
553 `(("glew" ,glew)
554 ("glm" ,glm)
01614de1 555 ("icu4c" ,icu4c)
9f1d33be 556 ("libxext" ,libxext)
e1c014d7 557 ("libxrender" ,libxrender)
9f1d33be
AK
558 ("mesa" ,mesa)))
559 (home-page "https://github.com/naelstrof/slop")
560 (synopsis "Select a region and print its bounds to stdout")
561 (description
562 "slop (Select Operation) is a tool that queries for a selection from a
563user and prints the region to stdout. It grabs the mouse and turns it into a
564crosshair, lets the user click and drag to make a selection (or click on a
565window) while drawing a pretty box around it, then finally prints the
566selection's dimensions to stdout.")
567 (license license:gpl3+)))
568
5c93de73
AK
569(define-public maim
570 (package
571 (name "maim")
ec8cdd0e 572 (version "5.5.2")
5c93de73 573 (source (origin
ab3159f8
RW
574 (method git-fetch)
575 (uri (git-reference
576 (url "https://github.com/naelstrof/maim.git")
577 (commit (string-append "v" version))))
578 (file-name (git-file-name name version))
5c93de73
AK
579 (sha256
580 (base32
ab3159f8 581 "14mfxdm39kc5jk8wysrzx05ag2g4sk9l24i8m5pzqn8j611150v3"))))
5c93de73
AK
582 (build-system cmake-build-system)
583 (arguments
2b7d10d2 584 '(#:tests? #f)) ; no "check" target
5c93de73 585 (inputs
2b7d10d2
MB
586 `(("glm" ,glm)
587 ("libjpeg" ,libjpeg-turbo)
588 ("libpng" ,libpng)
589 ("libxcomposite" ,libxcomposite)
5c93de73 590 ("libxfixes" ,libxfixes)
2b7d10d2
MB
591 ("libxrandr" ,libxrandr)
592 ("mesa" ,mesa)
593 ("slop" ,slop)
594 ("zlib" ,zlib)))
5c93de73
AK
595 (home-page "https://github.com/naelstrof/maim")
596 (synopsis "Screenshot utility for X Window System")
597 (description
598 "maim (Make Image) is a tool that takes screenshots of your desktop and
599saves it in any format. Along with a full screen, it allows you to capture a
600predefined region or a particular window. Also, it makes it possible to
601include cursor in the resulting image.")
602 (license license:gpl3+)))
603
4a01b30b
AK
604(define-public unclutter
605 (package
606 (name "unclutter")
607 (version "8")
608 (source (origin
609 (method url-fetch)
610 (uri (string-append
611 "http://ftp.x.org/contrib/utilities/unclutter-"
612 version ".tar.Z"))
613 (sha256
614 (base32
615 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
616 (build-system gnu-build-system)
617 (arguments
618 '(#:tests? #f ; no check target
ea0836cd
EF
619 #:phases
620 (modify-phases %standard-phases
621 (delete 'configure)
622 (replace 'install
623 (lambda* (#:key inputs outputs #:allow-other-keys)
624 (let* ((out (assoc-ref outputs "out"))
625 (bin (string-append out "/bin"))
626 (man1 (string-append out "/share/man/man1")))
627 (mkdir-p bin)
628 (mkdir-p man1)
e61c2991
TGR
629 (invoke "make" "install" "install.man"
630 (string-append "BINDIR=" bin)
631 (string-append "MANDIR=" man1))))))))
4a01b30b
AK
632 (inputs `(("libx11" ,libx11)))
633 (home-page "http://ftp.x.org/contrib/utilities/")
634 (synopsis "Hide idle mouse cursor")
635 (description
636 "Unclutter is a program which runs permanently in the background of an
637X11 session. It checks on the X11 pointer (cursor) position every few
638seconds, and when it finds it has not moved (and no buttons are pressed
639on the mouse, and the cursor is not in the root window) it creates a
640small sub-window as a child of the window the cursor is in. The new
641window installs a cursor of size 1x1 but a mask of all 0, i.e. an
642invisible cursor. This allows you to see all the text in an xterm or
643xedit, for example. The human factors crowd would agree it should make
644things less distracting.")
645 (license license:public-domain)))
ab69d9ac 646
6e79949f 647(define-public xautomation
648 (package
649 (name "xautomation")
650 (version "1.09")
651 (source
652 (origin
653 (method url-fetch)
654 (uri (string-append "https://www.hoopajoo.net/static/projects/"
655 "xautomation-" version ".tar.gz"))
656
657 (sha256
658 (base32
659 "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
660 (build-system gnu-build-system)
661 (inputs
662 `(("libpng" ,libpng)
663 ("libx11" ,libx11)
664 ("libxi" ,libxi)
665 ("libxtst" ,libxtst)))
666 (native-inputs
82b4d9ec 667 `(("xorgproto" ,xorgproto)))
6e79949f 668 (synopsis "Tools to automate tasks in X such as detecting on screen images")
669 (description
670 "Xautomation can control X from the command line for scripts, and
671do visual scraping to find things on the screen. The control interface
672allows mouse movement, clicking, button up/down, key up/down, etc, and
673uses the XTest extension so you don't have the annoying problems that
674xse has when apps ignore sent events. The visgrep program can find
675images inside of images and reports the coordinates, allowing progams
676to find buttons, etc, on the screen to click on.")
677 (home-page "https://www.hoopajoo.net/projects/xautomation.html")
678 (license license:gpl2+)))
679
0ea0452c
MB
680(define-public xbanish
681 (package
682 (name "xbanish")
683 (version "1.6")
684 (home-page "https://github.com/jcs/xbanish")
685 (source (origin
686 (method git-fetch)
687 (uri (git-reference (url home-page)
688 (commit (string-append "v" version))))
689 (sha256
690 (base32
691 "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
692 (build-system gnu-build-system)
693 (arguments
694 `(#:tests? #f ;no tests
695 #:make-flags (list "CC=gcc"
696 (string-append "PREFIX=" (assoc-ref %outputs "out")))
697 #:phases (modify-phases %standard-phases
698 (delete 'configure))))
699 (inputs
700 `(("libx11" ,libx11)
701 ("libxfixes" ,libxfixes)
702 ("libxi" ,libxi)
703 ("libxt" ,libxt)))
704 (synopsis "Banish the mouse cursor")
705 (description
706 "@command{xbanish} hides the mouse cursor when you start typing, and
707shows it again when the mouse cursor moves or a mouse button is pressed.")
708 (license license:bsd-3)))
709
ab69d9ac
LC
710(define-public xlockmore
711 (package
712 (name "xlockmore")
83ee7ee7 713 (version "5.56")
ab69d9ac
LC
714 (source (origin
715 (method url-fetch)
2ec42868
TGR
716 (uri (list (string-append "http://sillycycle.com/xlock/"
717 name "-" version ".tar.xz")
718 ;; Previous releases are moved to a subdirectory.
719 (string-append "http://sillycycle.com/xlock/"
720 "recent-releases/"
721 name "-" version ".tar.xz")))
ab69d9ac
LC
722 (sha256
723 (base32
83ee7ee7 724 "1dg1n79rnswhxqz36mxnl5lp8p37i9fbibnzzyrqknmvf2s8xpd0"))))
ab69d9ac
LC
725 (build-system gnu-build-system)
726 (arguments
727 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
728 (assoc-ref %outputs "out")
729 "/lib/X11/app-defaults"))
730 #:tests? #f)) ;no such thing as a test suite
731 (inputs
732 `(("libX11" ,libx11)
733 ("libXext" ,libxext)
734 ("libXt" ,libxt)
735 ("linux-pam" ,linux-pam)))
2ec42868 736 (home-page "http://sillycycle.com/xlockmore.html")
ab69d9ac
LC
737 (synopsis "Screen locker for the X Window System")
738 (description
739 "XLockMore is a classic screen locker and screen saver for the
740X Window System.")
166191b3 741 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 742 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
743
744(define-public xosd
745 (package
746 (name "xosd")
747 (version "2.2.14")
748 (source (origin
749 (method url-fetch)
750 (uri (string-append
de67e922
LF
751 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
752 name "-" version ".tar.gz"))
11447a79
AK
753 (sha256
754 (base32
755 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
756 (build-system gnu-build-system)
757 (arguments
758 '(#:configure-flags
759 (list (string-append "--mandir=" %output "/share/man"))))
760 (inputs
761 `(("libx11" ,libx11)
762 ("libxt" ,libxt)
763 ("libxext" ,libxext)
764 ("libxinerama" ,libxinerama)))
3b3b60d0 765 (home-page "https://sourceforge.net/projects/libxosd/")
11447a79
AK
766 (synopsis "X On Screen Display")
767 (description
768 "XOSD provides a C library and a simple utility (osd_cat) for displaying
769transparent text on your screen.")
770 (license license:gpl2+)))
76212b57
ML
771
772(define-public xbindkeys
773 (package
774 (name "xbindkeys")
775 (version "1.8.6")
776 (source (origin
777 (method url-fetch)
778 ;; Download from the savannah mirror list fails
779 (uri (string-append
780 "http://www.nongnu.org/xbindkeys/xbindkeys-"
781 version
782 ".tar.gz"))
783 (sha256
784 (base32
785 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
786 (build-system gnu-build-system)
787 (inputs
788 `(("libx11" ,libx11)
789 ("guile" ,guile-2.0)))
340978d7 790 (home-page "https://www.nongnu.org/xbindkeys/")
76212b57
ML
791 (synopsis "Associate a combination of keys with a shell command")
792 (description
793 "XBindKeys is a program that allows you to launch shell commands with
794your keyboard or your mouse under the X Window System. It links commands to
795keys or mouse buttons, using a configuration file. It's independent of the
796window manager and can capture all keyboard keys (ex: Power, Wake...). It
797optionally supports a Guile-based configuration file layout, which enables you
798to access all XBindKeys internals, so you can have key combinations, double
799clicks or timed double clicks take actions. Also all functions that work in
800Guile will work for XBindKeys.")
801 (license license:gpl2+)))
42f2c2b9 802
998b8c07 803(define-public sxhkd
804 (package
805 (name "sxhkd")
f8f0b652 806 (version "0.5.9")
998b8c07 807 (source
808 (origin
f8f0b652
TGR
809 (method git-fetch)
810 (uri (git-reference
811 (url "https://github.com/baskerville/sxhkd")
812 (commit version)))
998b8c07 813 (sha256
814 (base32
f8f0b652 815 "0cw547x7vky55k3ksrmzmrra4zhslqcwq9xw0y4cmbvy4s1qf64v"))))
998b8c07 816 (build-system gnu-build-system)
817 (inputs
818 `(("asciidoc" ,asciidoc)
819 ("libxcb" ,libxcb)
820 ("xcb-util" ,xcb-util)
821 ("xcb-util-keysyms" ,xcb-util-keysyms)
822 ("xcb-util-wm" ,xcb-util-wm)))
823 (arguments
f8f0b652 824 `(#:phases (modify-phases %standard-phases (delete 'configure))
998b8c07 825 #:tests? #f ; no check target
f8f0b652
TGR
826 #:make-flags
827 (list "CC=gcc"
828 (string-append "PREFIX=" %output)
829 ;; Keep the documentation where the build system installs LICENSE.
830 (string-append "DOCPREFIX=" %output
831 "/share/doc/" ,name "-" ,version))))
998b8c07 832 (home-page "https://github.com/baskerville/sxhkd")
833 (synopsis "Simple X hotkey daemon")
834 (description "sxhkd is a simple X hotkey daemon with a powerful and
835compact configuration syntax.")
836 (license license:bsd-2)))
837
42f2c2b9
AG
838(define-public rxvt-unicode
839 (package
840 (name "rxvt-unicode")
71ca0539 841 (version "9.22")
1ef3f91a
ML
842 (source (origin
843 (method url-fetch)
63999415 844 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a 845 name "-" version ".tar.bz2"))
0fd0bb56 846 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
1ef3f91a
ML
847 (sha256
848 (base32
71ca0539 849 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 850 (build-system gnu-build-system)
1ef3f91a
ML
851 (arguments
852 ;; This sets the destination when installing the necessary terminal
853 ;; capability data, which are not provided by 'ncurses'. See
854 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
33c93ea3 855 `(#:make-flags (list (string-append "TERMINFO="
1ef3f91a 856 (assoc-ref %outputs "out")
33c93ea3 857 "/share/terminfo"))
858 #:phases
859 (modify-phases %standard-phases
860 (add-after 'install 'install-desktop-urxvt
861 (lambda* (#:key outputs #:allow-other-keys)
862 (let* ((output (assoc-ref outputs "out"))
863 (desktop (string-append output "/share/applications")))
864 (mkdir-p desktop)
865 (with-output-to-file
866 (string-append desktop "/urxvt.desktop")
867 (lambda _
868 (format #t
869 "[Desktop Entry]~@
870 Name=rxvt-unicode~@
871 Comment=~@
872 Exec=~a/bin/urxvt~@
873 TryExec=~@*~a/bin/urxvt~@
874 Icon=~@
875 Type=Application~%"
876 output)))
877 #t)))
878 (add-after 'install 'install-desktop-urxvtc
879 (lambda* (#:key outputs #:allow-other-keys)
880 (let* ((output (assoc-ref outputs "out"))
881 (desktop (string-append output "/share/applications")))
882 (mkdir-p desktop)
883 (with-output-to-file
884 (string-append desktop "/urxvtc.desktop")
885 (lambda _
886 (format #t
887 "[Desktop Entry]~@
120349bf 888 Name=rxvt-unicode (client)~@
33c93ea3 889 Comment=Rxvt clone with XFT and unicode support~@
890 Exec=~a/bin/urxvtc~@
891 TryExec=~@*~a/bin/urxvtc~@
892 Icon=~@
893 Type=Application~%"
894 output)))
895 #t))))))
42f2c2b9
AG
896 (inputs
897 `(("libXft" ,libxft)
898 ("libX11" ,libx11)))
899 (native-inputs
1ef3f91a
ML
900 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
901 ("perl" ,perl)
42f2c2b9 902 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
903 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
904 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
905 (native-search-paths
906 (list (search-path-specification
907 (variable "TERMINFO_DIRS")
908 (files '("share/terminfo")))))
42f2c2b9
AG
909 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
910 (synopsis "Rxvt clone with XFT and unicode support")
911 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
912intended as an xterm replacement for users who do not require features such as
913Tektronix 4014 emulation and toolkit-style configurability. It supports
914unicode, XFT and may be extended with Perl plugins. It also comes with a
915client/daemon pair that lets you open any number of terminal windows from
916within a single process.")
917 (license license:gpl3+)))
ca0d2a63
AG
918
919(define-public xcape
920 (package
921 (name "xcape")
82f44a36 922 (version "1.2")
4bb74ed5
RW
923 (source (origin
924 (method git-fetch)
925 (uri (git-reference
926 (url "https://github.com/alols/xcape.git")
927 (commit (string-append "v" version))))
928 (file-name (git-file-name name version))
929 (sha256
930 (base32
931 "09a05cxgrip6nqy1qmwblamp2bhknqnqmxn7i2a1rgxa0nba95dm"))))
ca0d2a63
AG
932 (build-system gnu-build-system)
933 (arguments
934 `(#:tests? #f ; no check target
dc1d3cde
KK
935 ;; no configure script
936 #:phases (modify-phases %standard-phases (delete 'configure))
ca0d2a63
AG
937 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
938 "MANDIR=/share/man/man1"
939 "CC=gcc")))
940 (inputs
941 `(("libxtst" ,libxtst)
942 ("libx11" ,libx11)))
943 (native-inputs
944 `(("pkg-config" ,pkg-config)))
7bf837fd 945 (home-page "https://github.com/alols/xcape")
ca0d2a63
AG
946 (synopsis "Use a modifier key in X.org as another key")
947 (description
948 "This utility for X.org allows to use modifier key as another key when
949pressed and released on its own. The default behaviour is to generate the
950Escape key when Left Control is pressed and released on its own.")
951 (license license:gpl3+)))
f1f7049e
AW
952
953(define-public libwacom
954 (package
955 (name "libwacom")
fbc930ec 956 (version "0.32")
f1f7049e
AW
957 (source (origin
958 (method url-fetch)
0ac68e72
TGR
959 (uri (string-append
960 "https://github.com/linuxwacom/libwacom/releases/download/"
cffdcbef 961 "libwacom-" version "/libwacom-" version ".tar.bz2"))
f1f7049e
AW
962 (sha256
963 (base32
fbc930ec 964 "102kz0q7i0bjsnl6yy83vcj2rpir12rs2d4xr0wvhw84rs5sp7bb"))))
f1f7049e
AW
965 (build-system glib-or-gtk-build-system)
966 (native-inputs
967 `(("pkg-config" ,pkg-config)))
968 (inputs
34efce4f 969 `(("gtk+" ,gtk+)
b9cbe316 970 ("libgudev" ,libgudev)
f1f7049e
AW
971 ("eudev" ,eudev)
972 ("libxml2" ,libxml2)))
34efce4f
AW
973 (propagated-inputs
974 ;; libwacom includes header files that include GLib, and libinput uses
975 ;; those header files.
976 `(("glib" ,glib)))
81dc1d12 977 (home-page "https://linuxwacom.github.io/")
f1f7049e
AW
978 (synopsis "Helper library for Wacom tablet settings")
979 (description
34efce4f
AW
980 "Libwacom is a library to help implement Wacom tablet settings. It is
981intended to be used by client-programs that need model identification. It is
982already being used by the gnome-settings-daemon and the GNOME Control Center
983Wacom tablet applet.")
f1f7049e 984 (license license:x11)))
ab42a2a7
AW
985
986(define-public xf86-input-wacom
987 (package
988 (name "xf86-input-wacom")
fe049752
TGR
989 (version "0.36.1")
990 (source
991 (origin
992 (method url-fetch)
993 (uri (string-append
994 "https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
995 name "-" version "/" name "-" version ".tar.bz2"))
996 (sha256
997 (base32
998 "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
ab42a2a7
AW
999 (arguments
1000 `(#:configure-flags
1001 (list (string-append "--with-sdkdir="
1002 (assoc-ref %outputs "out")
1003 "/include/xorg")
1004 (string-append "--with-xorg-conf-dir="
1005 (assoc-ref %outputs "out")
1006 "/share/X11/xorg.conf.d"))))
1007 (build-system gnu-build-system)
1008 (native-inputs
1009 `(("pkg-config" ,pkg-config)))
1010 (inputs
1011 `(("xorg-server" ,xorg-server)
1012 ("libxrandr" ,libxrandr)
1013 ("libxinerama" ,libxinerama)
1014 ("libxi" ,libxi)
1015 ("eudev" ,eudev)))
81dc1d12 1016 (home-page "https://linuxwacom.github.io/")
ab42a2a7
AW
1017 (synopsis "Wacom input driver for X")
1018 (description
1019 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
1020the X.Org X Server version 1.7 and later (X11R7.5 or later).")
1021 (license license:x11)))
6645753b
FPS
1022
1023(define-public redshift
1024 (package
1025 (name "redshift")
a5a568d2 1026 (version "1.12")
6645753b
FPS
1027 (source
1028 (origin
1029 (method url-fetch)
1030 (uri
1031 (string-append "https://github.com/jonls/redshift/"
1032 "releases/download/v" version
1033 "/redshift-" version ".tar.xz"))
1034 (sha256
1035 (base32
a5a568d2 1036 "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
6645753b
FPS
1037 (build-system gnu-build-system)
1038 (native-inputs
1039 `(("pkg-config" ,pkg-config)
1040 ("intltool" ,intltool)))
1041 (inputs
1042 `(("libdrm" ,libdrm)
1043 ("libx11" ,libx11)
1044 ("libxcb" ,libxcb)
b3546174 1045 ("libxxf86vm" ,libxxf86vm)
a5a568d2 1046 ("glib" ,glib))) ; for Geoclue2 support
6645753b
FPS
1047 (home-page "https://github.com/jonls/redshift")
1048 (synopsis "Adjust the color temperature of your screen")
1049 (description
1050 "Redshift adjusts the color temperature according to the position of the
1051sun. A different color temperature is set during night and daytime. During
1052twilight and early morning, the color temperature transitions smoothly from
1053night to daytime temperature to allow your eyes to slowly adapt. At night the
1054color temperature should be set to match the lamps in your room.")
1055 (license license:gpl3+)))
b4c400a7
CAW
1056
1057(define-public xscreensaver
1058 (package
1059 (name "xscreensaver")
2bb187c4 1060 (version "5.42")
b4c400a7
CAW
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri
1065 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
1066 version ".tar.gz"))
1067 (sha256
1068 (base32
2bb187c4 1069 "1qfbsnj7201d03vf0b2lzxmlcq4kvkvzp48r5gcgsjr17c1sl7a4"))))
b4c400a7
CAW
1070 (build-system gnu-build-system)
1071 (arguments
1072 `(#:tests? #f ; no check target
1073 #:phases
1074 (modify-phases %standard-phases
1075 (add-before 'configure 'adjust-gtk-resource-paths
1076 (lambda _
1077 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
1078 (("@GTK_DATADIR@") "@datadir@")
c6bf07d1
MW
1079 (("@PO_DATADIR@") "@datadir@"))
1080 #t)))
b4c400a7
CAW
1081 #:configure-flags '("--with-pam" "--with-proc-interrupts"
1082 "--without-readdisplay")
2bb187c4
MB
1083 ;; FIXME: Remove CFLAGS once our default compiler is GCC6 or later.
1084 #:make-flags (list "CFLAGS=-std=c99"
1085 (string-append "AD_DIR="
b4c400a7
CAW
1086 (assoc-ref %outputs "out")
1087 "/usr/lib/X11/app-defaults"))))
1088 (native-inputs
1089 `(("pkg-config" ,pkg-config)
1090 ("intltool" ,intltool)))
1091 (inputs
1092 `(("libx11" ,libx11)
1093 ("libxext" ,libxext)
1094 ("libxi" ,libxi)
1095 ("libxt" ,libxt)
1096 ("libxft" ,libxft)
1097 ("libxmu" ,libxmu)
1098 ("libxpm" ,libxpm)
1099 ("libglade" ,libglade)
1100 ("libxml2" ,libxml2)
1101 ("libsm" ,libsm)
1102 ("libjpeg" ,libjpeg)
1103 ("linux-pam" ,linux-pam)
1104 ("pango" ,pango)
1105 ("gtk+" ,gtk+)
1106 ("perl" ,perl)
1107 ("cairo" ,cairo)
1108 ("bc" ,bc)
1109 ("libxrandr" ,libxrandr)
1110 ("glu" ,glu)
1111 ("glib" ,glib)))
1112 (home-page "https://www.jwz.org/xscreensaver/")
1113 (synopsis "Classic screen saver suite supporting screen locking")
1114 (description
1115 "xscreensaver is a popular screen saver collection with many entertaining
1116demos. It also acts as a nice screen locker.")
1117 ;; xscreensaver doesn't have a single copyright file and instead relies on
1118 ;; source comment headers, though most files have the same lax
1119 ;; permissions. To reduce complexity, we're pointing at Debian's
1120 ;; breakdown of the copyright information.
1121 (license (license:non-copyleft
1122 (string-append
1123 "http://metadata.ftp-master.debian.org/changelogs/"
706998e7 1124 "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
f40dfcd0 1125
cab1c117
MB
1126(define-public xsel
1127 (package
1128 (name "xsel")
1129 (version "1.2.0")
1130 (source (origin
1131 (method url-fetch)
1132 (uri (string-append "http://www.vergenet.net/~conrad/software"
1133 "/xsel/download/xsel-" version ".tar.gz"))
1134 (sha256
1135 (base32
1136 "070lbcpw77j143jrbkh0y1v10ppn1jwmjf92800w7x42vh4cw9xr"))))
1137 (build-system gnu-build-system)
1138 (inputs
1139 `(("libxt" ,libxt)))
1140 (home-page "http://www.vergenet.net/~conrad/software/xsel/")
1141 (synopsis "Manipulate X selection")
1142 (description
1143 "XSel is a command-line program for getting and setting the contents of
1144the X selection. Normally this is only accessible by manually highlighting
1145information and pasting it with the middle mouse button.
1146
1147XSel reads from standard input and writes to standard output by default,
1148but can also follow a growing file, display contents, delete entries and more.")
1149 (license (license:x11-style "file://COPYING"
1150 "See COPYING in the distribution."))))
1151
6cfd1a68
AK
1152(define-public xdpyprobe
1153 (package
1154 (name "xdpyprobe")
1155 (version "0.1")
1156 (source (origin
1157 (method url-fetch)
1158 (uri (string-append "https://github.com/alezost/" name
1159 "/releases/download/v" version
1160 "/" name "-" version ".tar.gz"))
1161 (sha256
1162 (base32
1163 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
1164 (build-system gnu-build-system)
1165 (inputs
1166 `(("libx11" ,libx11)))
1167 (home-page "https://github.com/alezost/xdpyprobe")
1168 (synopsis "Probe X server for connectivity")
1169 (description
1170 "Xdpyprobe is a tiny C program whose only purpose is to probe a
1171connectivity of the X server running on a particular @code{DISPLAY}.")
1172 (license license:gpl3+)))
1173
f40dfcd0
DM
1174(define-public rofi
1175 (package
1176 (name "rofi")
bf135622 1177 (version "1.5.2")
f40dfcd0
DM
1178 (source (origin
1179 (method url-fetch)
1180 (uri (string-append "https://github.com/DaveDavenport/rofi/"
1181 "releases/download/"
1182 version "/rofi-" version ".tar.xz"))
1183 (sha256
1184 (base32
bf135622 1185 "17faa0rj8vqidrijwx9jrq0c29003n8v3izvc66yssfljgb8kcpj"))))
f40dfcd0
DM
1186 (build-system gnu-build-system)
1187 (inputs
68c35ba9 1188 `(("pango" ,pango)
f40dfcd0
DM
1189 ("cairo" ,cairo)
1190 ("glib" ,glib)
1191 ("startup-notification" ,startup-notification)
23e12d9d 1192 ("librsvg" ,librsvg)
f40dfcd0
DM
1193 ("libxkbcommon" ,libxkbcommon)
1194 ("libxcb" ,libxcb)
1195 ("xcb-util" ,xcb-util)
68c35ba9 1196 ("xcb-util-xrm" ,xcb-util-xrm)
f40dfcd0
DM
1197 ("xcb-util-wm" ,xcb-util-wm)))
1198 (native-inputs
23e12d9d 1199 `(("bison" ,bison)
dfdf8d74 1200 ("check" ,check)
23e12d9d 1201 ("flex" ,flex)
a3a7eb2f 1202 ("glib:bin" ,glib "bin")
23e12d9d 1203 ("pkg-config" ,pkg-config)))
f40dfcd0 1204 (arguments
46d6219d
MB
1205 `(#:parallel-tests? #f ; May fail in some circumstances.
1206 #:phases
f40dfcd0
DM
1207 (modify-phases %standard-phases
1208 (add-before 'configure 'adjust-tests
1209 (lambda _
1210 (substitute* '("test/helper-expand.c")
1211 (("~root") "/root")
1212 (("~") "")
a3a7eb2f 1213 (("g_get_home_dir \\(\\)") "\"/\""))
576e0ae4 1214 #t)))))
06229f18 1215 (home-page "https://github.com/DaveDavenport/rofi")
89be33f7
TGR
1216 (synopsis "Application launcher")
1217 (description "Rofi is a minimalist application launcher. It memorizes which
1218applications you regularly use and also allows you to search for an application
f40dfcd0
DM
1219by name.")
1220 (license license:expat)))
751f6871
ML
1221
1222(define-public tint2
1223 (package
1224 (name "tint2")
1ffe4171 1225 (version "0.14.6")
751f6871
ML
1226 (source (origin
1227 (method url-fetch)
1228 (uri (string-append "https://gitlab.com/o9000/" name
1229 "/repository/archive.tar.gz?ref=" version))
1230 (file-name (string-append name "-" version ".tar.gz"))
1231 (sha256
1232 (base32
1ffe4171 1233 "1kwzwxy4myagybm3rc7dgynfgp75742n348qibn1p2an9ggyivda"))))
751f6871
ML
1234 (build-system cmake-build-system)
1235 (arguments
1236 '(#:tests? #f ;no test target
1237 #:phases
1238 (modify-phases %standard-phases
1239 (add-after 'unpack 'fix-installation-prefix
1240 (lambda _
1241 (substitute* "CMakeLists.txt"
c6bf07d1
MW
1242 (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
1243 #t)))))
751f6871
ML
1244 (inputs
1245 `(("gtk+" ,gtk+-2)
1246 ("imlib2" ,imlib2)
1247 ("librsvg" ,librsvg)
1248 ("libxcomposite" ,libxcomposite)
1249 ("libxdamage" ,libxdamage)
1250 ("libxft" ,libxft)
1251 ("libxinerama" ,libxinerama)
1252 ("libxrandr" ,libxrandr)
1253 ("startup-notification" ,startup-notification)))
1254 (native-inputs
b94a6ca0 1255 `(("gettext" ,gettext-minimal)
751f6871
ML
1256 ("pkg-config" ,pkg-config)))
1257 (home-page "https://gitlab.com/o9000/tint2")
1258 (synopsis "Lightweight task bar")
1259 (description
1260 "Tint2 is a simple task bar made for modern X window managers. It was
1261specifically made for Openbox but it should also work with other window
1262managers (GNOME, KDE, XFCE etc.).
1263
1264The taskbar includes transparency and color settings for the font, icons,
1265border, and background. It also supports multihead setups, customized mouse
1266actions, a built-in clock, a battery monitor and a system tray.")
1267 (license license:gpl2)))
4493a3c2 1268
37447422
MM
1269(define-public dzen
1270 (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
1271 (revision "1"))
1272 (package
1273 (name "dzen")
1274 (version (string-append "0.9.5-" ; Taken from `config.mk`.
1275 revision "." (string-take commit 7)))
1276 (source (origin
1277 (method git-fetch)
1278 (uri (git-reference
1279 (url "https://github.com/robm/dzen.git")
1280 (commit commit)))
1281 (file-name (string-append name "-" version))
1282 (sha256
1283 (base32
1284 "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
1285 (build-system gnu-build-system)
1286 (arguments
1287 `(#:tests? #f ; No test suite.
1288 #:make-flags ; Replacement for `config.mk`.
1289 (list
1290 (string-append "VERSION = " ,version)
1291 (string-append "PREFIX = " %output)
1292 "MANPREFIX = ${PREFIX}/share/man"
1293 "INCS = -I."
1294 "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
1295 "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
1296 -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
1297 "LDFLAGS = ${LIBS}"
1298 "CC = gcc"
1299 "LD = ${CC}")
1300 #:phases
1301 (modify-phases %standard-phases
1302 (delete 'configure) ; No configuration script.
1303 ;; Use own make-flags instead of `config.mk`.
1304 (add-before 'build 'dont-include-config-mk
1305 (lambda _
1306 (substitute* "Makefile" (("include config.mk") ""))
1307 #t)))))
1308 (inputs
1309 `(("libx11" ,libx11)
1310 ("libxft" ,libxft)
1311 ("libxpm" ,libxpm)
1312 ("libxinerama" ,libxinerama)))
1313 (native-inputs `(("pkg-config" ,pkg-config)))
1314 (synopsis "General purpose messaging, notification and menuing program for X11")
1315 (description "Dzen is a general purpose messaging, notification and menuing
1316program for X11. It was designed to be fast, tiny and scriptable in any language.")
1317 (home-page "https://github.com/robm/dzen")
1318 (license license:expat))))
1319
4493a3c2
MB
1320(define-public xcb-util-xrm
1321 (package
1322 (name "xcb-util-xrm")
40fb6b84 1323 (version "1.3")
4493a3c2
MB
1324 (source (origin
1325 (method url-fetch)
1326 (uri (string-append
1327 "https://github.com/Airblader/xcb-util-xrm/releases"
1328 "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
1329 (sha256
1330 (base32
40fb6b84 1331 "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"))
4493a3c2
MB
1332 (modules '((guix build utils)))
1333 (snippet
1334 ;; Drop bundled m4.
6cbee49d
MW
1335 '(begin
1336 (delete-file-recursively "m4")
1337 #t))))
4493a3c2
MB
1338 (build-system gnu-build-system)
1339 (native-inputs
1340 `(("pkg-config" ,pkg-config)
1341 ("m4" ,m4)
1342 ("libx11" ,libx11))) ; for tests
1343 (inputs
1344 `(("libxcb" ,libxcb)
1345 ("xcb-util" ,xcb-util)))
1346 (home-page "https://github.com/Airblader/xcb-util-xrm")
1347 (synopsis "XCB utility functions for the X resource manager")
1348 (description
1349 "The XCB util module provides a number of libraries which sit on
1350top of libxcb, the core X protocol library, and some of the extension
1351libraries. These experimental libraries provide convenience functions
1352and interfaces which make the raw X protocol more usable. Some of the
1353libraries also provide client-side code which is not strictly part of
1354the X protocol but which has traditionally been provided by Xlib.
1355
1356XCB util-xrm module provides the following libraries:
1357
1358- xrm: utility functions for the X resource manager.")
1359 (license license:x11)))
01278f16
P
1360
1361(define-public xcalib
1362 (package
1363 (name "xcalib")
6d727bf4
TGR
1364 (version "0.10")
1365 (home-page "https://github.com/OpenICC/xcalib")
01278f16 1366 (source (origin
6d727bf4
TGR
1367 (method git-fetch)
1368 (uri (git-reference
1369 (url home-page)
1370 (commit version)))
01278f16
P
1371 (sha256
1372 (base32
6d727bf4
TGR
1373 "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
1374 (patches
1375 (list
1376 ;; Add missing documentation for the new --output option.
1377 ;; This upstream patch can be removed on the next update.
1378 (origin
1379 (method url-fetch)
1380 (uri (string-append
1381 home-page "/commit/"
1382 "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch"))
1383 (file-name "xcalib-update-man-page.patch")
1384 (sha256
1385 (base32
1386 "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6")))))))
1387 (build-system cmake-build-system)
01278f16 1388 (arguments
6d727bf4 1389 '(#:tests? #f)) ; no test suite
c695fb76
TGR
1390 (inputs `(("libx11" ,libx11)
1391 ("libxext" ,libxext)
6d727bf4 1392 ("libxrandr" ,libxrandr)
c695fb76 1393 ("libxxf86vm" ,libxxf86vm)))
01278f16
P
1394 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1395 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1396profiles to the video card's gamma ramp. It does work with most video card
1397drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1398invert colors on a specific display/screen.")
01278f16 1399 (license license:gpl2)))
f021382b
MB
1400
1401(define-public nxbelld
1402 (package
1403 (name "nxbelld")
1404 (version "0.1.2")
1405 (source (origin
1406 (method git-fetch)
1407 (uri (git-reference
1408 (url "https://github.com/dusxmt/nxbelld.git")
1409 (commit version)))
1410 (sha256
1411 (base32
1412 "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
1413 (file-name (git-file-name name version))))
1414 (build-system gnu-build-system)
1415 (arguments '(#:configure-flags `("--enable-sound"
1416 "--enable-wave"
4cbbb160
RW
1417 "--enable-alsa")))
1418 (native-inputs `(("autoconf" ,autoconf)
1419 ("automake" ,automake)
1420 ("pkg-config" ,pkg-config)
1421 ("perl" ,perl)))
f021382b
MB
1422 (inputs `(("libx11" ,libx11)
1423 ("alsa-lib" ,alsa-lib)))
1424 (synopsis "Daemon that performs an action every time the X11 bell is rung")
1425 (description "nxbelld is a tiny utility to aid people who either don't
1426like the default PC speaker beep, or use a sound driver that doesn't have
1427support for the PC speaker. The utility performs a given action every time
1428the X bell is rung. The actions nxbelld can currently perform include running
1429a specified program, emulating the PC speaker beep using the sound card (default),
1430or playing a PCM encoded WAVE file.")
1431 (home-page "https://github.com/dusxmt/nxbelld")
1432 (license license:gpl3+)))
1d752e43
MG
1433
1434(define-public xautolock
1435 (package
1436 (name "xautolock")
1437 (version "2.2")
1438 (source (origin
1439 (method url-fetch)
1440 (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
1441 name "-" version ".tgz"))
1442 (sha256
1443 (base32
1444 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
1445 (build-system gnu-build-system)
1446 (native-inputs
1447 `(("imake" ,imake)))
1448 (inputs
1449 `(("libx11" ,libx11)
1450 ("libxext" ,libxext)
1451 ("libxscrnsaver" ,libxscrnsaver)))
1452 (arguments
1453 `(#:tests? #f
1454 #:phases
1455 (modify-phases %standard-phases
1456 (replace 'configure
1457 (lambda* (#:key inputs outputs #:allow-other-keys)
1458 (let ((imake (assoc-ref inputs "imake"))
1459 (out (assoc-ref outputs "out")))
1460 ;; Generate Makefile
1461 (invoke "xmkmf")
1462 (substitute* "Makefile"
1463 ;; These imake variables somehow remain undefined
1464 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
1465 ;; Reset a few variable defaults that are set in imake templates
1466 ((imake) out)
1467 (("(MANPATH = )[[:graph:]]*" _ front)
1468 (string-append front out "/share/man")))
1469 ;; Old BSD-style 'union wait' is unneeded (defining
1470 ;; _USE_BSD did not seem to fix it)
1471 (substitute* "src/engine.c"
1472 (("union wait status") "int status = 0"))
1473 #t)))
1474 (add-after 'install 'install/man
1475 (lambda _
e61c2991 1476 (invoke "make" "install.man"))))))
1d752e43
MG
1477 (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
1478 (synopsis "Program launcher for idle X sessions")
1479 (description "Xautolock monitors input devices under the X Window
1480System, and launches a program of your choice if there is no activity after
1481a user-configurable period of time.")
1482 (license license:gpl2)))
af1e3dfe
T
1483
1484(define-public screen-message
1485 (package
1486 (name "screen-message")
1487 (version "0.25")
1488 (source (origin
1489 (method url-fetch)
1490 (uri (string-append
1491 "https://www.joachim-breitner.de/archive/screen-message"
1492 "/screen-message-" version ".tar.gz"))
1493 (sha256
1494 (base32
1495 "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
1496 (build-system gnu-build-system)
1497 (inputs `(("gtk3" ,gtk+)
1498 ("gdk" ,gdk-pixbuf)
1499 ("pango" ,pango)))
1500 (native-inputs `(("pkg-config" ,pkg-config)))
1501 (arguments
1502 ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
1503 ;; this fixes it:
1504 `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
1505 (synopsis "Print messages on your screen")
1506 (description "@code{screen-message} is a tool for displaying text on
1507your screen. It will make the text as large as possible and display it
1508with black color on a white background (colors are configurable on the
1509commandline).")
1510 (home-page "https://www.joachim-breitner.de/projects#screen-message")
1511 (license license:gpl2+)))
428adbc2
PN
1512
1513(define-public xss-lock
1514 ;; xss-lock does not seem to be maintained any longer, but the last commits
1515 ;; fix important issues so we package them.
1516 (let ((version "0.3.0")
1517 (revision "1")
1518 (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
1519 (package
1520 (name "xss-lock")
1521 (version (git-version version revision commit))
1522 (source (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://bitbucket.org/raymonad/xss-lock.git")
1526 (commit commit)))
1527 (file-name (git-file-name name version))
1528 (sha256
1529 (base32
1530 "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
1531 (build-system cmake-build-system)
1532 (inputs `(("glib" ,glib)
1533 ("xcb-util" ,xcb-util)))
1534 (native-inputs
1535 `(("python-docutils" ,python-docutils)
1536 ("pkg-config" ,pkg-config)))
1537 (arguments
1538 `(#:tests? #f))
1539 (synopsis "Use external screen locker on events")
1540 (description "@code{xss-lock} listens to X signals to fire up a
1541user-defined screensaver. In effect this allows to automatically lock the
1542screen when closing a laptop lid or after a period of user inactivity (as set
1543with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
1544first. Additionally, xss-lock uses the inhibition logic to lock the screen
1545before the system goes to sleep.")
1546 (home-page "https://bitbucket.org/raymonad/xss-lock")
1547 (license license:expat))))
19110787
EF
1548
1549(define-public python-pyperclip
1550 (package
1551 (name "python-pyperclip")
1552 (version "1.6.4")
1553 (source
1554 (origin
1555 (method url-fetch)
1556 (uri (pypi-uri "pyperclip" version))
1557 (sha256
1558 (base32
1559 "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
1560 (build-system python-build-system)
1561 (arguments
1562 '(#:tests? #f)) ; Not clear how to make tests pass.
1563 (inputs
1564 `(("xclip" ,xclip)
1565 ("xsel" ,xsel)))
1566 (home-page "https://github.com/asweigart/pyperclip")
1567 (synopsis "Python clipboard module")
1568 (description
1569 "Pyperclip is a clipboard module for Python, handling copy/pasting from
1570the X11 clipboard")
1571 (license license:bsd-3)))
90337891
PN
1572
1573(define-public numlockx
1574 (package
1575 (name "numlockx")
1576 (version "1.2")
1577 (source (origin
1578 (method git-fetch)
1579 (uri (git-reference
1580 ;; It seems that upstream is gone.
1581 (url "https://github.com/rg3/numlockx")
1582 (commit version)))
1583 (file-name (git-file-name name version))
1584 (sha256
1585 (base32
1586 "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
1587 (build-system gnu-build-system)
1588 (inputs
1589 `(("xorg-server" ,xorg-server)))
1590 (home-page "https://github.com/rg3/numlockx")
1591 (synopsis "Turns on the numlock key in X11")
1592 (description "@command{numlockx} is a tiny program that lets you turn on
1593the numlock key in X11. It can be called from the user's initialization files
1594to automatically turn it on on login.")
1595 (license license:expat)))
67e0fb8b
RW
1596
1597(define-public xrandr-invert-colors
1598 (package
1599 (name "xrandr-invert-colors")
1600 (version "0.01")
1601 (source (origin
1602 (method git-fetch)
1603 (uri (git-reference
1604 (url "https://github.com/zoltanp/xrandr-invert-colors.git")
1605 (commit (string-append "v" version))))
1606 (file-name (git-file-name name version))
1607 (sha256
1608 (base32
1609 "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
1610 (build-system gnu-build-system)
1611 (arguments
1612 `(#:make-flags (list "CC=gcc")
1613 #:tests? #f ; there are none
1614 #:phases
1615 (modify-phases %standard-phases
1616 (delete 'configure)
1617 (replace 'install
1618 (lambda* (#:key outputs #:allow-other-keys)
1619 (let* ((out (assoc-ref outputs "out"))
1620 (bin (string-append out "/bin")))
1621 (install-file "xrandr-invert-colors.bin" bin)
1622 #t))))))
1623 (inputs
1624 `(("libxrandr" ,libxrandr)))
1625 (home-page "https://github.com/zoltanp/xrandr-invert-colors")
1626 (synopsis "Invert display colors")
1627 (description "This package provides a small utility for inverting the
1628colors on all monitors attached to an XRandR-capable X11 display server.")
1629 (license license:gpl3+)))
d852cf9e
NN
1630
1631(define-public sct
1632 (package
1633 (name "sct")
1634 (version "0.4")
1635 (source
1636 (origin
1637 (method url-fetch)
1638 (uri
1639 (string-append "https://www.umaxx.net/dl/sct-"
1640 version ".tar.gz"))
1641 (sha256
1642 (base32
1643 "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
1644 (build-system gnu-build-system)
1645 (arguments
1646 '(#:make-flags (list "CC=gcc")
1647 #:tests? #f ; No tests exist.
1648 #:phases
1649 (modify-phases %standard-phases
1650 (delete 'configure)
1651 (add-after 'unpack 'fix-sctd-paths
1652 (lambda* (#:key outputs inputs #:allow-other-keys)
1653 (let ((out (assoc-ref outputs "out"))
1654 (coreutils (assoc-ref inputs "coreutils"))
1655 (inetutils (assoc-ref inputs "inetutils"))
1656 (sed (assoc-ref inputs "sed")))
1657 (substitute* "sctd.sh"
1658 (("\\$\\(which sct\\)") (string-append out "/bin/sct"))
1659 (("date") (string-append coreutils "/bin/date"))
1660 (("printf") (string-append coreutils "/bin/printf"))
1661 (("sleep") (string-append coreutils "/bin/sleep"))
1662 (("logger") (string-append inetutils "/bin/logger"))
1663 (("sed") (string-append sed "/bin/sed"))))))
1664 (replace 'install
1665 (lambda* (#:key outputs #:allow-other-keys)
1666 (let ((out (assoc-ref outputs "out")))
1667 (install-file "sct" (string-append out "/bin"))
1668 (install-file "sctd.sh" (string-append out "/bin"))
1669 (install-file "sct.1" (string-append out "/man/man1"))
1670 (install-file "sctd.1" (string-append out "/man/man1"))
1671 (rename-file (string-append out "/bin/sctd.sh")
1672 (string-append out "/bin/sctd"))
1673 #t))))))
1674 (inputs
1675 `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
1676 ("inetutils" ,inetutils) ; sctd uses "logger"
1677 ("libxrandr" ,libxrandr)
1678 ("sed" ,sed))) ; sctd uses "sed"
1679 (home-page "https://www.umaxx.net")
1680 (synopsis "Set the color temperature of the screen")
1681 (description "@code{sct} is a lightweight utility to set the color
1682temperature of the screen.")
dbd346ae 1683 (license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
95bf2fb6
RH
1684
1685(define-public wl-clipboard
1686 (package
1687 (name "wl-clipboard")
1688 (version "1.0.0")
1689 (source
1690 (origin
1691 (method git-fetch)
1692 (uri (git-reference
1693 (url "https://github.com/bugaevc/wl-clipboard.git")
1694 (commit (string-append "v" version))))
1695 (file-name (git-file-name name version))
1696 (sha256
1697 (base32 "03h6ajcc30w6928bkd4h6xfj4iy2359ww6hdlybq8mr1zwmb2h0q"))))
1698 (build-system meson-build-system)
1699 (native-inputs
1700 `(("pkg-config" ,pkg-config)))
1701 (inputs
1702 `(("wayland" ,wayland)
1703 ("wayland-protocols" ,wayland-protocols)))
1704 (home-page "https://github.com/bugaevc/wl-clipboard")
1705 (synopsis "Command-line copy/paste utilities for Wayland")
1706 (description "Wl-clipboard is a set of command-line copy/paste utilities for
1707Wayland.")
1708 (license license:gpl3+)))