gnu: Add python-docker-pycreds.
[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>
b951e26f 13;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
1f42989e 14;;; Copyright © 2016, 2017 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>
428adbc2 26;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
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
JD
133 (source
134 (origin
135 (method url-fetch)
b2193c35
MB
136 (uri (string-append "https://github.com/astrand/xclip"
137 "/archive/" version ".tar.gz"))
e3baf59c 138 (file-name (string-append name "-" version ".tar.gz"))
de878f1b
JD
139 (sha256
140 (base32
b2193c35 141 "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya"))))
de878f1b
JD
142 (build-system gnu-build-system)
143 (arguments
189be331 144 '(#:tests? #f)) ;there is no test suite
b2193c35
MB
145 (native-inputs
146 `(("autoconf" ,autoconf)
147 ("automake" ,automake)))
de878f1b
JD
148 (inputs `(("libxmu" ,libxmu)
149 ("libxt" ,libxt)))
b2193c35 150 (home-page "https://github.com/astrand/xclip")
de878f1b
JD
151 (synopsis "Command line interface to X11 clipboard")
152 (description "Xclip is a command line interface to the X11 clipboard. It
153can also be used for copying files, as an alternative to sftp/scp, thus
154avoiding password prompts when X11 forwarding has already been setup.")
155 (license license:gpl2+)))
156
cf60e76a
DM
157(define-public libxkbcommon
158 (package
159 (name "libxkbcommon")
457f6f26 160 (version "0.8.0")
cf60e76a
DM
161 (source (origin
162 (method url-fetch)
fbb4755c 163 (uri (string-append "https://xkbcommon.org/download/" name "-"
cf60e76a
DM
164 version ".tar.xz"))
165 (sha256
166 (base32
457f6f26 167 "0vgy84vfbig5bqznr137h5arjidnfwrxrdli0pxyn2jfn1fjcag8"))))
cf60e76a
DM
168 (build-system gnu-build-system)
169 (inputs
170 `(("libx11" ,libx11)
171 ("libxcb" ,libxcb)
172 ("xkeyboard-config" ,xkeyboard-config)))
173 (native-inputs
174 `(("bison" ,bison)
175 ("pkg-config" ,pkg-config)))
176 (arguments
177 `(#:configure-flags
178 (list (string-append "--with-xkb-config-root="
179 (assoc-ref %build-inputs "xkeyboard-config")
180 "/share/X11/xkb")
181 (string-append "--with-x-locale-root="
182 (assoc-ref %build-inputs "libx11")
183 "/share/X11/locale"))))
fbb4755c 184 (home-page "https://xkbcommon.org/")
cf60e76a
DM
185 (synopsis "Library to handle keyboard descriptions")
186 (description "Xkbcommon is a library to handle keyboard descriptions,
187including loading them from disk, parsing them and handling their
188state. It is mainly meant for client toolkits, window systems, and other
189system applications; currently that includes Wayland, kmscon, GTK+, Qt,
190Clutter, and more. Despite the name, it is not currently used by anything
191X11 (yet).")
192 (license (license:x11-style "file://COPYING"
193 "See 'COPYING' in the distribution."))))
194
e91f9d40 195(define-public libfakekey
196 (package
197 (name "libfakekey")
198 (version "0.1")
199 (source
200 (origin
201 (method url-fetch)
202 (uri (string-append "https://downloads.yoctoproject.org/releases"
203 "/matchbox/libfakekey/" version "/libfakekey-"
204 version ".tar.bz2"))
205 (sha256
206 (base32
207 "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
208 (build-system gnu-build-system)
209 (arguments
210 `(#:make-flags (list "AM_LDFLAGS=-lX11")))
211 (native-inputs
212 `(("pkg-config" ,pkg-config)))
213 (inputs
214 `(("libxtst" ,libxtst)
215 ("libx11" ,libx11)))
216 (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
217 (synopsis "X virtual keyboard library")
218 (description
219 "Libfakekey is a virtual keyboard library for X.")
220 (license license:gpl2)))
221
de51bf58
JD
222(define-public xdotool
223 (package
224 (name "xdotool")
6f74aecd 225 (version "3.20150503.1")
de51bf58
JD
226 (source
227 (origin
228 (method url-fetch)
229 (uri (string-append
6f74aecd
CAW
230 "https://github.com/jordansissel/xdotool/releases/download/v"
231 version "/xdotool-" version ".tar.gz"))
de51bf58
JD
232 (sha256
233 (base32
6f74aecd 234 "1lcngsw33fy9my21rdiz1gs474bfdqcfxjrnfggbx4aypn1nhcp8"))
fc1adab1 235 (patches (search-patches "xdotool-fix-makefile.patch"))))
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)
243 (setenv "PREFIX" (assoc-ref outputs "out"))
244 (setenv "LDFLAGS"
245 (string-append "-Wl,-rpath="
246 (assoc-ref %outputs "out") "/lib"))
247 (setenv "CC" "gcc"))))))
de51bf58
JD
248 (native-inputs `(("perl" ,perl))) ; for pod2man
249 (inputs `(("libx11" ,libx11)
250 ("libxext" ,libxext)
251 ("libxi" ,libxi)
252 ("libxinerama" ,libxinerama)
6f74aecd
CAW
253 ("libxtst" ,libxtst)
254 ("libxkbcommon" ,libxkbcommon)))
de51bf58
JD
255 (home-page "http://www.semicomplete.com/projects/xdotool")
256 (synopsis "Fake keyboard/mouse input, window management, and more")
257 (description "Xdotool lets you simulate keyboard input and mouse activity,
258move and resize windows, etc. It does this using X11's XTEST extension and
259other Xlib functions. Additionally, you can search for windows and move,
260resize, hide, and modify window properties like the title. If your window
261manager supports it, you can use xdotool to switch desktops, move windows
262between desktops, and change the number of desktops.")
263 (license license:bsd-3)))
264
3c156c8a
JD
265(define-public xeyes
266 (package
267 (name "xeyes")
fa91433d 268 (version "1.1.2")
3c156c8a 269 (source
fa91433d
TGR
270 (origin
271 (method url-fetch)
272 (uri (string-append "https://www.x.org/releases/individual/app/"
273 name "-" version ".tar.bz2"))
274 (sha256
275 (base32 "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p"))))
3c156c8a
JD
276 (build-system gnu-build-system)
277 (inputs
278 `(("libxext" ,libxext)
279 ("libxmu" ,libxmu)
fa91433d 280 ("libxrender" ,libxrender)
3c156c8a
JD
281 ("libxt" ,libxt)))
282 (native-inputs
283 `(("pkg-config" ,pkg-config)))
5e996128 284 (home-page "https://www.x.org/") ; no dedicated Xeyes page exists
3c156c8a
JD
285 (synopsis "Follow-the-mouse X demo")
286 (description "Xeyes is a demo program for x.org. It shows eyes
287following the mouse.")
288 (license license:x11)))
289
290
291(define-public pixman
292 (package
293 (name "pixman")
6983ba56 294 (version "0.34.0")
997f86e9
LC
295 (source (origin
296 (method url-fetch)
297 (uri (string-append
298 "http://cairographics.org/releases/pixman-"
299 version ".tar.gz"))
300 (sha256
301 (base32
35bbe88b
MB
302 "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))
303 (patches (search-patches "pixman-CVE-2016-5296.patch"))))
3c156c8a
JD
304 (build-system gnu-build-system)
305 (inputs
997f86e9
LC
306 `(("libpng" ,libpng)
307 ("zlib" ,zlib)))
3c156c8a 308 (native-inputs
997f86e9 309 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
310 (home-page "http://www.pixman.org/")
311 (synopsis "Low-level pixel manipulation library")
312 (description "Pixman is a low-level software library for pixel
313manipulation, providing features such as image compositing and trapezoid
314rasterisation.")
315 (license license:x11)))
316
3c156c8a
JD
317(define-public libdrm
318 (package
319 (name "libdrm")
fa497c73 320 (version "2.4.92")
3c156c8a
JD
321 (source
322 (origin
323 (method url-fetch)
324 (uri (string-append
5cc3096c 325 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
326 version
327 ".tar.bz2"))
328 (sha256
0b684f49 329 (base32
fa497c73 330 "1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79"))
fc1adab1 331 (patches (search-patches "libdrm-symbol-check.patch"))))
3c156c8a 332 (build-system gnu-build-system)
1f42989e
EF
333 (arguments
334 `(#:configure-flags
335 '(,@(match (%current-system)
336 ("armhf-linux"
337 '("--enable-exynos-experimental-api"
338 "--enable-omap-experimental-api"
68932812
MB
339 ;; XXX: This fails a symbol check on a build machine:
340 ;; <https://hydra.gnu.org/build/2270314/nixlog/4/raw>
341 ;; TODO: Update the list of symbols.
342 ;;"--enable-etnaviv-experimental-api"
1f42989e
EF
343 "--enable-tegra-experimental-api"
344 "--enable-freedreno-kgsl"))
345 ("aarch64-linux"
346 '("--enable-tegra-experimental-api"
347 "--enable-freedreno-kgsl"))
348 (_ '())))))
3c156c8a 349 (inputs
53e16a5a 350 `(("libpciaccess" ,libpciaccess)))
3c156c8a 351 (native-inputs
53e16a5a
MB
352 `(("pkg-config" ,pkg-config)))
353 (home-page "https://dri.freedesktop.org/wiki/")
3c156c8a
JD
354 (synopsis "Direct rendering userspace library")
355 (description "The Direct Rendering Infrastructure, also known as the DRI,
356is a framework for allowing direct access to graphics hardware under the
357X Window System in a safe and efficient manner. It includes changes to the
358X server, to several client libraries, and to the kernel (DRM, Direct
359Rendering Manager). The most important use for the DRI is to create fast
360OpenGL implementations providing hardware acceleration for Mesa.
361Several 3D accelerated drivers have been written to the DRI specification,
362including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
363and Matrox.")
364 (license license:x11)))
365
366
3c156c8a
JD
367(define-public mtdev
368 (package
369 (name "mtdev")
1f1e620f 370 (version "1.1.5")
3c156c8a
JD
371 (source
372 (origin
373 (method url-fetch)
374 (uri (string-append
375 "http://bitmath.org/code/mtdev/mtdev-"
376 version ".tar.bz2"))
377 (sha256
1f1e620f
EF
378 (base32
379 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
380 (build-system gnu-build-system)
381 (home-page "http://bitmath.org/code/mtdev/")
382 (synopsis "Multitouch protocol translation library")
383 (description "Mtdev is a stand-alone library which transforms all
384variants of kernel MT events to the slotted type B protocol. The events
385put into mtdev may be from any MT device, specifically type A without
386contact tracking, type A with contact tracking, or type B with contact
387tracking.")
388 (license license:x11)))
a693bba1
SB
389
390(define-public startup-notification
391 (package
392 (name "startup-notification")
393 (version "0.12")
394 (source
395 (origin
396 (method url-fetch)
5cc3096c 397 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
398 "/releases/" name "-" version ".tar.gz"))
399 (sha256
400 (base32
401 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
402 (build-system gnu-build-system)
403 (native-inputs `(("pkg-config" ,pkg-config)))
404 (inputs
405 `(("libx11" ,libx11)
406 ("xcb-util" ,xcb-util)))
57e7d748 407 (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
a693bba1
SB
408 (synopsis "Application startup notification and feedback library")
409 (description
410 "Startup-notification contains a reference implementation of the startup
411notification protocol. The reference implementation is mostly under an X Window
412System style license, and has no special dependencies.")
413 ;; Most of the code is provided under x11 license.
414 (license license:lgpl2.0+)))
2e88e089
AK
415
416(define-public wmctrl
417 (package
418 (name "wmctrl")
419 (version "1.07")
420 (source (origin
421 (method url-fetch)
422 (uri (string-append
d6420533 423 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
424 version ".tar.gz"))
425 (sha256
426 (base32
427 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 428 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
429 (build-system gnu-build-system)
430 (arguments
431 '(#:configure-flags
432 (list (string-append "--mandir="
433 (assoc-ref %outputs "out")
434 "/share/man"))))
435 (native-inputs
436 `(("pkg-config" ,pkg-config)))
437 (inputs
438 `(("libx11" ,libx11)
439 ("libxmu" ,libxmu)
440 ("glib" ,glib)))
441 (home-page "http://tomas.styblo.name/wmctrl/")
442 (synopsis "Command-line tool to control X window managers")
443 (description
444 "Wmctrl allows to interact with an X window manager that is compatible
445with the EWMH/NetWM specification. It can query the window manager for
446information, and request for certain window management actions (resize and
e881752c 447move windows, switch between desktops, etc.).")
2e88e089 448 (license license:gpl2+)))
1410f342
AK
449
450(define-public scrot
451 (package
452 (name "scrot")
453 (version "0.8")
454 (source (origin
455 (method url-fetch)
9da459f3
EF
456 (uri (list (string-append
457 "http://linuxbrit.co.uk/downloads/scrot-"
458 version ".tar.gz")
459 (string-append
460 "https://fossies.org/linux/privat/old/scrot-"
c5d15d41 461 version ".tar.gz")))
1410f342
AK
462 (sha256
463 (base32
464 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
465 (build-system gnu-build-system)
466 (arguments
467 ;; By default, man and doc are put in PREFIX/{man,doc} instead of
468 ;; PREFIX/share/{man,doc}.
469 '(#:configure-flags
470 (list (string-append "--mandir="
471 (assoc-ref %outputs "out")
472 "/share/man"))
d5047266
EF
473 #:phases
474 (modify-phases %standard-phases
475 (replace 'install
476 (lambda* (#:key inputs outputs #:allow-other-keys)
477 (let* ((out (assoc-ref outputs "out"))
478 (doc (string-append out "/share/doc/scrot")))
479 (mkdir-p doc)
480 (zero?
481 (system* "make" "install"
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
AK
500 (source (origin
501 (method url-fetch)
502 (uri (string-append
503 "https://github.com/naelstrof/slop/archive/v"
504 version ".tar.gz"))
505 (file-name (string-append name "-" version ".tar.gz"))
506 (sha256
507 (base32
89f9ffff 508 "1kpdrikgpjb4fpxalb6pjcih5njv1w9cnrjj5612ywdv1q5mjs48"))))
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
AK
533 (source (origin
534 (method url-fetch)
535 (uri (string-append
536 "https://github.com/naelstrof/maim/archive/v"
537 version ".tar.gz"))
538 (file-name (string-append name "-" version ".tar.gz"))
539 (sha256
540 (base32
ec8cdd0e 541 "14zdhsx1cndg5m8wbv1rqmza7wgknwfj5h0knzxg3p2jkjw66i95"))))
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)
589 (zero?
590 (system* "make" "install" "install.man"
591 (string-append "BINDIR=" bin)
592 (string-append "MANDIR=" man1)))))))))
4a01b30b
AK
593 (inputs `(("libx11" ,libx11)))
594 (home-page "http://ftp.x.org/contrib/utilities/")
595 (synopsis "Hide idle mouse cursor")
596 (description
597 "Unclutter is a program which runs permanently in the background of an
598X11 session. It checks on the X11 pointer (cursor) position every few
599seconds, and when it finds it has not moved (and no buttons are pressed
600on the mouse, and the cursor is not in the root window) it creates a
601small sub-window as a child of the window the cursor is in. The new
602window installs a cursor of size 1x1 but a mask of all 0, i.e. an
603invisible cursor. This allows you to see all the text in an xterm or
604xedit, for example. The human factors crowd would agree it should make
605things less distracting.")
606 (license license:public-domain)))
ab69d9ac 607
6e79949f 608(define-public xautomation
609 (package
610 (name "xautomation")
611 (version "1.09")
612 (source
613 (origin
614 (method url-fetch)
615 (uri (string-append "https://www.hoopajoo.net/static/projects/"
616 "xautomation-" version ".tar.gz"))
617
618 (sha256
619 (base32
620 "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
621 (build-system gnu-build-system)
622 (inputs
623 `(("libpng" ,libpng)
624 ("libx11" ,libx11)
625 ("libxi" ,libxi)
626 ("libxtst" ,libxtst)))
627 (native-inputs
82b4d9ec 628 `(("xorgproto" ,xorgproto)))
6e79949f 629 (synopsis "Tools to automate tasks in X such as detecting on screen images")
630 (description
631 "Xautomation can control X from the command line for scripts, and
632do visual scraping to find things on the screen. The control interface
633allows mouse movement, clicking, button up/down, key up/down, etc, and
634uses the XTest extension so you don't have the annoying problems that
635xse has when apps ignore sent events. The visgrep program can find
636images inside of images and reports the coordinates, allowing progams
637to find buttons, etc, on the screen to click on.")
638 (home-page "https://www.hoopajoo.net/projects/xautomation.html")
639 (license license:gpl2+)))
640
ab69d9ac
LC
641(define-public xlockmore
642 (package
643 (name "xlockmore")
e6f6d765 644 (version "5.55")
ab69d9ac
LC
645 (source (origin
646 (method url-fetch)
2ec42868
TGR
647 (uri (list (string-append "http://sillycycle.com/xlock/"
648 name "-" version ".tar.xz")
649 ;; Previous releases are moved to a subdirectory.
650 (string-append "http://sillycycle.com/xlock/"
651 "recent-releases/"
652 name "-" version ".tar.xz")))
ab69d9ac
LC
653 (sha256
654 (base32
e6f6d765 655 "1y3f76rq2nd10fgi2rx81aj6pijglmm661vjsxi05hpg35dzmwfl"))))
ab69d9ac
LC
656 (build-system gnu-build-system)
657 (arguments
658 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
659 (assoc-ref %outputs "out")
660 "/lib/X11/app-defaults"))
661 #:tests? #f)) ;no such thing as a test suite
662 (inputs
663 `(("libX11" ,libx11)
664 ("libXext" ,libxext)
665 ("libXt" ,libxt)
666 ("linux-pam" ,linux-pam)))
2ec42868 667 (home-page "http://sillycycle.com/xlockmore.html")
ab69d9ac
LC
668 (synopsis "Screen locker for the X Window System")
669 (description
670 "XLockMore is a classic screen locker and screen saver for the
671X Window System.")
166191b3 672 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 673 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
674
675(define-public xosd
676 (package
677 (name "xosd")
678 (version "2.2.14")
679 (source (origin
680 (method url-fetch)
681 (uri (string-append
de67e922
LF
682 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
683 name "-" version ".tar.gz"))
11447a79
AK
684 (sha256
685 (base32
686 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
687 (build-system gnu-build-system)
688 (arguments
689 '(#:configure-flags
690 (list (string-append "--mandir=" %output "/share/man"))))
691 (inputs
692 `(("libx11" ,libx11)
693 ("libxt" ,libxt)
694 ("libxext" ,libxext)
695 ("libxinerama" ,libxinerama)))
3b3b60d0 696 (home-page "https://sourceforge.net/projects/libxosd/")
11447a79
AK
697 (synopsis "X On Screen Display")
698 (description
699 "XOSD provides a C library and a simple utility (osd_cat) for displaying
700transparent text on your screen.")
701 (license license:gpl2+)))
76212b57
ML
702
703(define-public xbindkeys
704 (package
705 (name "xbindkeys")
706 (version "1.8.6")
707 (source (origin
708 (method url-fetch)
709 ;; Download from the savannah mirror list fails
710 (uri (string-append
711 "http://www.nongnu.org/xbindkeys/xbindkeys-"
712 version
713 ".tar.gz"))
714 (sha256
715 (base32
716 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
717 (build-system gnu-build-system)
718 (inputs
719 `(("libx11" ,libx11)
720 ("guile" ,guile-2.0)))
340978d7 721 (home-page "https://www.nongnu.org/xbindkeys/")
76212b57
ML
722 (synopsis "Associate a combination of keys with a shell command")
723 (description
724 "XBindKeys is a program that allows you to launch shell commands with
725your keyboard or your mouse under the X Window System. It links commands to
726keys or mouse buttons, using a configuration file. It's independent of the
727window manager and can capture all keyboard keys (ex: Power, Wake...). It
728optionally supports a Guile-based configuration file layout, which enables you
729to access all XBindKeys internals, so you can have key combinations, double
730clicks or timed double clicks take actions. Also all functions that work in
731Guile will work for XBindKeys.")
732 (license license:gpl2+)))
42f2c2b9 733
998b8c07 734(define-public sxhkd
735 (package
736 (name "sxhkd")
f8f0b652 737 (version "0.5.9")
998b8c07 738 (source
739 (origin
f8f0b652
TGR
740 (method git-fetch)
741 (uri (git-reference
742 (url "https://github.com/baskerville/sxhkd")
743 (commit version)))
998b8c07 744 (sha256
745 (base32
f8f0b652 746 "0cw547x7vky55k3ksrmzmrra4zhslqcwq9xw0y4cmbvy4s1qf64v"))))
998b8c07 747 (build-system gnu-build-system)
748 (inputs
749 `(("asciidoc" ,asciidoc)
750 ("libxcb" ,libxcb)
751 ("xcb-util" ,xcb-util)
752 ("xcb-util-keysyms" ,xcb-util-keysyms)
753 ("xcb-util-wm" ,xcb-util-wm)))
754 (arguments
f8f0b652 755 `(#:phases (modify-phases %standard-phases (delete 'configure))
998b8c07 756 #:tests? #f ; no check target
f8f0b652
TGR
757 #:make-flags
758 (list "CC=gcc"
759 (string-append "PREFIX=" %output)
760 ;; Keep the documentation where the build system installs LICENSE.
761 (string-append "DOCPREFIX=" %output
762 "/share/doc/" ,name "-" ,version))))
998b8c07 763 (home-page "https://github.com/baskerville/sxhkd")
764 (synopsis "Simple X hotkey daemon")
765 (description "sxhkd is a simple X hotkey daemon with a powerful and
766compact configuration syntax.")
767 (license license:bsd-2)))
768
42f2c2b9
AG
769(define-public rxvt-unicode
770 (package
771 (name "rxvt-unicode")
71ca0539 772 (version "9.22")
1ef3f91a
ML
773 (source (origin
774 (method url-fetch)
63999415 775 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a 776 name "-" version ".tar.bz2"))
0fd0bb56 777 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
1ef3f91a
ML
778 (sha256
779 (base32
71ca0539 780 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 781 (build-system gnu-build-system)
1ef3f91a
ML
782 (arguments
783 ;; This sets the destination when installing the necessary terminal
784 ;; capability data, which are not provided by 'ncurses'. See
785 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
33c93ea3 786 `(#:make-flags (list (string-append "TERMINFO="
1ef3f91a 787 (assoc-ref %outputs "out")
33c93ea3 788 "/share/terminfo"))
789 #:phases
790 (modify-phases %standard-phases
791 (add-after 'install 'install-desktop-urxvt
792 (lambda* (#:key outputs #:allow-other-keys)
793 (let* ((output (assoc-ref outputs "out"))
794 (desktop (string-append output "/share/applications")))
795 (mkdir-p desktop)
796 (with-output-to-file
797 (string-append desktop "/urxvt.desktop")
798 (lambda _
799 (format #t
800 "[Desktop Entry]~@
801 Name=rxvt-unicode~@
802 Comment=~@
803 Exec=~a/bin/urxvt~@
804 TryExec=~@*~a/bin/urxvt~@
805 Icon=~@
806 Type=Application~%"
807 output)))
808 #t)))
809 (add-after 'install 'install-desktop-urxvtc
810 (lambda* (#:key outputs #:allow-other-keys)
811 (let* ((output (assoc-ref outputs "out"))
812 (desktop (string-append output "/share/applications")))
813 (mkdir-p desktop)
814 (with-output-to-file
815 (string-append desktop "/urxvtc.desktop")
816 (lambda _
817 (format #t
818 "[Desktop Entry]~@
120349bf 819 Name=rxvt-unicode (client)~@
33c93ea3 820 Comment=Rxvt clone with XFT and unicode support~@
821 Exec=~a/bin/urxvtc~@
822 TryExec=~@*~a/bin/urxvtc~@
823 Icon=~@
824 Type=Application~%"
825 output)))
826 #t))))))
42f2c2b9
AG
827 (inputs
828 `(("libXft" ,libxft)
829 ("libX11" ,libx11)))
830 (native-inputs
1ef3f91a
ML
831 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
832 ("perl" ,perl)
42f2c2b9 833 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
834 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
835 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
836 (native-search-paths
837 (list (search-path-specification
838 (variable "TERMINFO_DIRS")
839 (files '("share/terminfo")))))
42f2c2b9
AG
840 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
841 (synopsis "Rxvt clone with XFT and unicode support")
842 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
843intended as an xterm replacement for users who do not require features such as
844Tektronix 4014 emulation and toolkit-style configurability. It supports
845unicode, XFT and may be extended with Perl plugins. It also comes with a
846client/daemon pair that lets you open any number of terminal windows from
847within a single process.")
848 (license license:gpl3+)))
ca0d2a63
AG
849
850(define-public xcape
851 (package
852 (name "xcape")
82f44a36 853 (version "1.2")
ca0d2a63
AG
854 (source
855 (origin
856 (method url-fetch)
857 (uri (string-append "https://github.com/alols/" name
858 "/archive/v" version ".tar.gz"))
859 (file-name (string-append name "-" version ".tar.gz"))
860 (sha256
861 (base32
82f44a36 862 "0898zc3vwxia00h9kfknpf7jygxgwggrx8v5mxc31w4lzn2dhzm2"))))
ca0d2a63
AG
863 (build-system gnu-build-system)
864 (arguments
865 `(#:tests? #f ; no check target
dc1d3cde
KK
866 ;; no configure script
867 #:phases (modify-phases %standard-phases (delete 'configure))
ca0d2a63
AG
868 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
869 "MANDIR=/share/man/man1"
870 "CC=gcc")))
871 (inputs
872 `(("libxtst" ,libxtst)
873 ("libx11" ,libx11)))
874 (native-inputs
875 `(("pkg-config" ,pkg-config)))
7bf837fd 876 (home-page "https://github.com/alols/xcape")
ca0d2a63
AG
877 (synopsis "Use a modifier key in X.org as another key")
878 (description
879 "This utility for X.org allows to use modifier key as another key when
880pressed and released on its own. The default behaviour is to generate the
881Escape key when Left Control is pressed and released on its own.")
882 (license license:gpl3+)))
f1f7049e
AW
883
884(define-public libwacom
885 (package
886 (name "libwacom")
0ac68e72 887 (version "0.30")
f1f7049e
AW
888 (source (origin
889 (method url-fetch)
0ac68e72
TGR
890 (uri (string-append
891 "https://github.com/linuxwacom/libwacom/releases/download/"
892 name "-" version "/" name "-" version ".tar.bz2"))
f1f7049e
AW
893 (sha256
894 (base32
0ac68e72 895 "0n9294f2534qcgfry4n7vmr6vy49iqym0y74a88g1h0l0ml0hd2j"))))
f1f7049e
AW
896 (build-system glib-or-gtk-build-system)
897 (native-inputs
898 `(("pkg-config" ,pkg-config)))
899 (inputs
34efce4f 900 `(("gtk+" ,gtk+)
b9cbe316 901 ("libgudev" ,libgudev)
f1f7049e
AW
902 ("eudev" ,eudev)
903 ("libxml2" ,libxml2)))
34efce4f
AW
904 (propagated-inputs
905 ;; libwacom includes header files that include GLib, and libinput uses
906 ;; those header files.
907 `(("glib" ,glib)))
81dc1d12 908 (home-page "https://linuxwacom.github.io/")
f1f7049e
AW
909 (synopsis "Helper library for Wacom tablet settings")
910 (description
34efce4f
AW
911 "Libwacom is a library to help implement Wacom tablet settings. It is
912intended to be used by client-programs that need model identification. It is
913already being used by the gnome-settings-daemon and the GNOME Control Center
914Wacom tablet applet.")
f1f7049e 915 (license license:x11)))
ab42a2a7
AW
916
917(define-public xf86-input-wacom
918 (package
919 (name "xf86-input-wacom")
fe049752
TGR
920 (version "0.36.1")
921 (source
922 (origin
923 (method url-fetch)
924 (uri (string-append
925 "https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
926 name "-" version "/" name "-" version ".tar.bz2"))
927 (sha256
928 (base32
929 "029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
ab42a2a7
AW
930 (arguments
931 `(#:configure-flags
932 (list (string-append "--with-sdkdir="
933 (assoc-ref %outputs "out")
934 "/include/xorg")
935 (string-append "--with-xorg-conf-dir="
936 (assoc-ref %outputs "out")
937 "/share/X11/xorg.conf.d"))))
938 (build-system gnu-build-system)
939 (native-inputs
940 `(("pkg-config" ,pkg-config)))
941 (inputs
942 `(("xorg-server" ,xorg-server)
943 ("libxrandr" ,libxrandr)
944 ("libxinerama" ,libxinerama)
945 ("libxi" ,libxi)
946 ("eudev" ,eudev)))
81dc1d12 947 (home-page "https://linuxwacom.github.io/")
ab42a2a7
AW
948 (synopsis "Wacom input driver for X")
949 (description
950 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
951the X.Org X Server version 1.7 and later (X11R7.5 or later).")
952 (license license:x11)))
6645753b
FPS
953
954(define-public redshift
955 (package
956 (name "redshift")
a5a568d2 957 (version "1.12")
6645753b
FPS
958 (source
959 (origin
960 (method url-fetch)
961 (uri
962 (string-append "https://github.com/jonls/redshift/"
963 "releases/download/v" version
964 "/redshift-" version ".tar.xz"))
965 (sha256
966 (base32
a5a568d2 967 "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
6645753b
FPS
968 (build-system gnu-build-system)
969 (native-inputs
970 `(("pkg-config" ,pkg-config)
971 ("intltool" ,intltool)))
972 (inputs
973 `(("libdrm" ,libdrm)
974 ("libx11" ,libx11)
975 ("libxcb" ,libxcb)
b3546174 976 ("libxxf86vm" ,libxxf86vm)
a5a568d2 977 ("glib" ,glib))) ; for Geoclue2 support
6645753b
FPS
978 (home-page "https://github.com/jonls/redshift")
979 (synopsis "Adjust the color temperature of your screen")
980 (description
981 "Redshift adjusts the color temperature according to the position of the
982sun. A different color temperature is set during night and daytime. During
983twilight and early morning, the color temperature transitions smoothly from
984night to daytime temperature to allow your eyes to slowly adapt. At night the
985color temperature should be set to match the lamps in your room.")
986 (license license:gpl3+)))
b4c400a7
CAW
987
988(define-public xscreensaver
989 (package
990 (name "xscreensaver")
3b4f3ff7 991 (version "5.39")
b4c400a7
CAW
992 (source
993 (origin
994 (method url-fetch)
995 (uri
996 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
997 version ".tar.gz"))
998 (sha256
999 (base32
3b4f3ff7 1000 "09i47h4hdgwxyqgrsnshl4l5dv5mrsp37h705cc22lwby601ikj8"))))
b4c400a7
CAW
1001 (build-system gnu-build-system)
1002 (arguments
1003 `(#:tests? #f ; no check target
1004 #:phases
1005 (modify-phases %standard-phases
1006 (add-before 'configure 'adjust-gtk-resource-paths
1007 (lambda _
1008 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
1009 (("@GTK_DATADIR@") "@datadir@")
1010 (("@PO_DATADIR@") "@datadir@")))))
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"
1170 (("/etc") "${CMAKE_INSTALL_PREFIX}/etc")))))))
1171 (inputs
1172 `(("gtk+" ,gtk+-2)
1173 ("imlib2" ,imlib2)
1174 ("librsvg" ,librsvg)
1175 ("libxcomposite" ,libxcomposite)
1176 ("libxdamage" ,libxdamage)
1177 ("libxft" ,libxft)
1178 ("libxinerama" ,libxinerama)
1179 ("libxrandr" ,libxrandr)
1180 ("startup-notification" ,startup-notification)))
1181 (native-inputs
b94a6ca0 1182 `(("gettext" ,gettext-minimal)
751f6871
ML
1183 ("pkg-config" ,pkg-config)))
1184 (home-page "https://gitlab.com/o9000/tint2")
1185 (synopsis "Lightweight task bar")
1186 (description
1187 "Tint2 is a simple task bar made for modern X window managers. It was
1188specifically made for Openbox but it should also work with other window
1189managers (GNOME, KDE, XFCE etc.).
1190
1191The taskbar includes transparency and color settings for the font, icons,
1192border, and background. It also supports multihead setups, customized mouse
1193actions, a built-in clock, a battery monitor and a system tray.")
1194 (license license:gpl2)))
4493a3c2 1195
37447422
MM
1196(define-public dzen
1197 (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
1198 (revision "1"))
1199 (package
1200 (name "dzen")
1201 (version (string-append "0.9.5-" ; Taken from `config.mk`.
1202 revision "." (string-take commit 7)))
1203 (source (origin
1204 (method git-fetch)
1205 (uri (git-reference
1206 (url "https://github.com/robm/dzen.git")
1207 (commit commit)))
1208 (file-name (string-append name "-" version))
1209 (sha256
1210 (base32
1211 "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
1212 (build-system gnu-build-system)
1213 (arguments
1214 `(#:tests? #f ; No test suite.
1215 #:make-flags ; Replacement for `config.mk`.
1216 (list
1217 (string-append "VERSION = " ,version)
1218 (string-append "PREFIX = " %output)
1219 "MANPREFIX = ${PREFIX}/share/man"
1220 "INCS = -I."
1221 "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
1222 "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
1223 -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
1224 "LDFLAGS = ${LIBS}"
1225 "CC = gcc"
1226 "LD = ${CC}")
1227 #:phases
1228 (modify-phases %standard-phases
1229 (delete 'configure) ; No configuration script.
1230 ;; Use own make-flags instead of `config.mk`.
1231 (add-before 'build 'dont-include-config-mk
1232 (lambda _
1233 (substitute* "Makefile" (("include config.mk") ""))
1234 #t)))))
1235 (inputs
1236 `(("libx11" ,libx11)
1237 ("libxft" ,libxft)
1238 ("libxpm" ,libxpm)
1239 ("libxinerama" ,libxinerama)))
1240 (native-inputs `(("pkg-config" ,pkg-config)))
1241 (synopsis "General purpose messaging, notification and menuing program for X11")
1242 (description "Dzen is a general purpose messaging, notification and menuing
1243program for X11. It was designed to be fast, tiny and scriptable in any language.")
1244 (home-page "https://github.com/robm/dzen")
1245 (license license:expat))))
1246
4493a3c2
MB
1247(define-public xcb-util-xrm
1248 (package
1249 (name "xcb-util-xrm")
40fb6b84 1250 (version "1.3")
4493a3c2
MB
1251 (source (origin
1252 (method url-fetch)
1253 (uri (string-append
1254 "https://github.com/Airblader/xcb-util-xrm/releases"
1255 "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
1256 (sha256
1257 (base32
40fb6b84 1258 "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"))
4493a3c2
MB
1259 (modules '((guix build utils)))
1260 (snippet
1261 ;; Drop bundled m4.
6cbee49d
MW
1262 '(begin
1263 (delete-file-recursively "m4")
1264 #t))))
4493a3c2
MB
1265 (build-system gnu-build-system)
1266 (native-inputs
1267 `(("pkg-config" ,pkg-config)
1268 ("m4" ,m4)
1269 ("libx11" ,libx11))) ; for tests
1270 (inputs
1271 `(("libxcb" ,libxcb)
1272 ("xcb-util" ,xcb-util)))
1273 (home-page "https://github.com/Airblader/xcb-util-xrm")
1274 (synopsis "XCB utility functions for the X resource manager")
1275 (description
1276 "The XCB util module provides a number of libraries which sit on
1277top of libxcb, the core X protocol library, and some of the extension
1278libraries. These experimental libraries provide convenience functions
1279and interfaces which make the raw X protocol more usable. Some of the
1280libraries also provide client-side code which is not strictly part of
1281the X protocol but which has traditionally been provided by Xlib.
1282
1283XCB util-xrm module provides the following libraries:
1284
1285- xrm: utility functions for the X resource manager.")
1286 (license license:x11)))
01278f16
P
1287
1288(define-public xcalib
1289 (package
1290 (name "xcalib")
6d727bf4
TGR
1291 (version "0.10")
1292 (home-page "https://github.com/OpenICC/xcalib")
01278f16 1293 (source (origin
6d727bf4
TGR
1294 (method git-fetch)
1295 (uri (git-reference
1296 (url home-page)
1297 (commit version)))
01278f16
P
1298 (sha256
1299 (base32
6d727bf4
TGR
1300 "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
1301 (patches
1302 (list
1303 ;; Add missing documentation for the new --output option.
1304 ;; This upstream patch can be removed on the next update.
1305 (origin
1306 (method url-fetch)
1307 (uri (string-append
1308 home-page "/commit/"
1309 "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch"))
1310 (file-name "xcalib-update-man-page.patch")
1311 (sha256
1312 (base32
1313 "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6")))))))
1314 (build-system cmake-build-system)
01278f16 1315 (arguments
6d727bf4 1316 '(#:tests? #f)) ; no test suite
c695fb76
TGR
1317 (inputs `(("libx11" ,libx11)
1318 ("libxext" ,libxext)
6d727bf4 1319 ("libxrandr" ,libxrandr)
c695fb76 1320 ("libxxf86vm" ,libxxf86vm)))
01278f16
P
1321 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1322 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1323profiles to the video card's gamma ramp. It does work with most video card
1324drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1325invert colors on a specific display/screen.")
01278f16 1326 (license license:gpl2)))
f021382b
MB
1327
1328(define-public nxbelld
1329 (package
1330 (name "nxbelld")
1331 (version "0.1.2")
1332 (source (origin
1333 (method git-fetch)
1334 (uri (git-reference
1335 (url "https://github.com/dusxmt/nxbelld.git")
1336 (commit version)))
1337 (sha256
1338 (base32
1339 "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
1340 (file-name (git-file-name name version))))
1341 (build-system gnu-build-system)
1342 (arguments '(#:configure-flags `("--enable-sound"
1343 "--enable-wave"
1344 "--enable-alsa")
1345 #:phases (modify-phases %standard-phases
1346 (add-before 'configure 'autoreconf
1347 (lambda _
1348 (zero? (system* "autoreconf" "-vfi")))))))
1349 (native-inputs `(("autoconf" ,autoconf)
1350 ("automake" ,automake)
1351 ("pkg-config" ,pkg-config)
1352 ("perl" ,perl)))
1353 (inputs `(("libx11" ,libx11)
1354 ("alsa-lib" ,alsa-lib)))
1355 (synopsis "Daemon that performs an action every time the X11 bell is rung")
1356 (description "nxbelld is a tiny utility to aid people who either don't
1357like the default PC speaker beep, or use a sound driver that doesn't have
1358support for the PC speaker. The utility performs a given action every time
1359the X bell is rung. The actions nxbelld can currently perform include running
1360a specified program, emulating the PC speaker beep using the sound card (default),
1361or playing a PCM encoded WAVE file.")
1362 (home-page "https://github.com/dusxmt/nxbelld")
1363 (license license:gpl3+)))
1d752e43
MG
1364
1365(define-public xautolock
1366 (package
1367 (name "xautolock")
1368 (version "2.2")
1369 (source (origin
1370 (method url-fetch)
1371 (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
1372 name "-" version ".tgz"))
1373 (sha256
1374 (base32
1375 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
1376 (build-system gnu-build-system)
1377 (native-inputs
1378 `(("imake" ,imake)))
1379 (inputs
1380 `(("libx11" ,libx11)
1381 ("libxext" ,libxext)
1382 ("libxscrnsaver" ,libxscrnsaver)))
1383 (arguments
1384 `(#:tests? #f
1385 #:phases
1386 (modify-phases %standard-phases
1387 (replace 'configure
1388 (lambda* (#:key inputs outputs #:allow-other-keys)
1389 (let ((imake (assoc-ref inputs "imake"))
1390 (out (assoc-ref outputs "out")))
1391 ;; Generate Makefile
1392 (invoke "xmkmf")
1393 (substitute* "Makefile"
1394 ;; These imake variables somehow remain undefined
1395 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
1396 ;; Reset a few variable defaults that are set in imake templates
1397 ((imake) out)
1398 (("(MANPATH = )[[:graph:]]*" _ front)
1399 (string-append front out "/share/man")))
1400 ;; Old BSD-style 'union wait' is unneeded (defining
1401 ;; _USE_BSD did not seem to fix it)
1402 (substitute* "src/engine.c"
1403 (("union wait status") "int status = 0"))
1404 #t)))
1405 (add-after 'install 'install/man
1406 (lambda _
1407 (zero? (system* "make" "install.man")))))))
1408 (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
1409 (synopsis "Program launcher for idle X sessions")
1410 (description "Xautolock monitors input devices under the X Window
1411System, and launches a program of your choice if there is no activity after
1412a user-configurable period of time.")
1413 (license license:gpl2)))
af1e3dfe
T
1414
1415(define-public screen-message
1416 (package
1417 (name "screen-message")
1418 (version "0.25")
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append
1422 "https://www.joachim-breitner.de/archive/screen-message"
1423 "/screen-message-" version ".tar.gz"))
1424 (sha256
1425 (base32
1426 "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
1427 (build-system gnu-build-system)
1428 (inputs `(("gtk3" ,gtk+)
1429 ("gdk" ,gdk-pixbuf)
1430 ("pango" ,pango)))
1431 (native-inputs `(("pkg-config" ,pkg-config)))
1432 (arguments
1433 ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
1434 ;; this fixes it:
1435 `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
1436 (synopsis "Print messages on your screen")
1437 (description "@code{screen-message} is a tool for displaying text on
1438your screen. It will make the text as large as possible and display it
1439with black color on a white background (colors are configurable on the
1440commandline).")
1441 (home-page "https://www.joachim-breitner.de/projects#screen-message")
1442 (license license:gpl2+)))
428adbc2
PN
1443
1444(define-public xss-lock
1445 ;; xss-lock does not seem to be maintained any longer, but the last commits
1446 ;; fix important issues so we package them.
1447 (let ((version "0.3.0")
1448 (revision "1")
1449 (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
1450 (package
1451 (name "xss-lock")
1452 (version (git-version version revision commit))
1453 (source (origin
1454 (method git-fetch)
1455 (uri (git-reference
1456 (url "https://bitbucket.org/raymonad/xss-lock.git")
1457 (commit commit)))
1458 (file-name (git-file-name name version))
1459 (sha256
1460 (base32
1461 "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
1462 (build-system cmake-build-system)
1463 (inputs `(("glib" ,glib)
1464 ("xcb-util" ,xcb-util)))
1465 (native-inputs
1466 `(("python-docutils" ,python-docutils)
1467 ("pkg-config" ,pkg-config)))
1468 (arguments
1469 `(#:tests? #f))
1470 (synopsis "Use external screen locker on events")
1471 (description "@code{xss-lock} listens to X signals to fire up a
1472user-defined screensaver. In effect this allows to automatically lock the
1473screen when closing a laptop lid or after a period of user inactivity (as set
1474with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
1475first. Additionally, xss-lock uses the inhibition logic to lock the screen
1476before the system goes to sleep.")
1477 (home-page "https://bitbucket.org/raymonad/xss-lock")
1478 (license license:expat))))