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