gnu: mbedtls-apache: Update to 2.7.2.
[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>
04fa4cdf 6;;; Copyright © 2013, 2015, 2017 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>
89be33f7 21;;; Copyright © 2017 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>
3c156c8a
JD
25;;;
26;;; This file is part of GNU Guix.
27;;;
28;;; GNU Guix is free software; you can redistribute it and/or modify it
29;;; under the terms of the GNU General Public License as published by
30;;; the Free Software Foundation; either version 3 of the License, or (at
31;;; your option) any later version.
32;;;
33;;; GNU Guix is distributed in the hope that it will be useful, but
34;;; WITHOUT ANY WARRANTY; without even the implied warranty of
35;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36;;; GNU General Public License for more details.
37;;;
38;;; You should have received a copy of the GNU General Public License
39;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
40
41(define-module (gnu packages xdisorg)
42 #:use-module ((guix licenses) #:prefix license:)
43 #:use-module (guix packages)
44 #:use-module (guix download)
37447422 45 #:use-module (guix git-download)
18ad5bff 46 #:use-module (guix utils)
9f1d33be 47 #:use-module (guix build-system cmake)
3c156c8a 48 #:use-module (guix build-system gnu)
f1f7049e 49 #:use-module (guix build-system glib-or-gtk)
ae05b185 50 #:use-module (guix build-system python)
3c156c8a 51 #:use-module (gnu packages)
99828fa7 52 #:use-module (gnu packages documentation)
b4c400a7 53 #:use-module (gnu packages algebra)
b2193c35 54 #:use-module (gnu packages autotools)
23e12d9d 55 #:use-module (gnu packages check)
3c156c8a
JD
56 #:use-module (gnu packages compression)
57 #:use-module (gnu packages image)
58 #:use-module (gnu packages pkg-config)
23e12d9d 59 #:use-module (gnu packages flex)
ae05b185 60 #:use-module (gnu packages gettext)
9f1d33be 61 #:use-module (gnu packages gl)
2e88e089 62 #:use-module (gnu packages glib)
751f6871 63 #:use-module (gnu packages gnome)
01614de1 64 #:use-module (gnu packages icu4c)
937b71df 65 #:use-module (gnu packages maths)
4493a3c2 66 #:use-module (gnu packages m4)
1ef3f91a 67 #:use-module (gnu packages ncurses)
de51bf58 68 #:use-module (gnu packages perl)
ae05b185 69 #:use-module (gnu packages python)
ab69d9ac 70 #:use-module (gnu packages linux)
b4c400a7 71 #:use-module (gnu packages gl)
76212b57 72 #:use-module (gnu packages guile)
f1f7049e
AW
73 #:use-module (gnu packages xml)
74 #:use-module (gnu packages gtk)
cf60e76a 75 #:use-module (gnu packages xorg)
1f42989e
EF
76 #:use-module (gnu packages bison)
77 #:use-module (ice-9 match))
3c156c8a 78
3c156c8a
JD
79;; packages outside the x.org system proper
80
ae05b185
ML
81(define-public arandr
82 (package
83 (name "arandr")
16d8f9be 84 (version "0.1.9")
ae05b185
ML
85 (source (origin
86 (method url-fetch)
87 (uri (string-append "http://christian.amsuess.com/tools/" name
88 "/files/" name "-" version ".tar.gz"))
89 (sha256
90 (base32
04fa4cdf
LC
91 "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
92 (modules '((guix build utils)))
93 (snippet
94 ;; Do not record a timestamp and file name in gzipped man
95 ;; pages (this is equivalent to 'gzip --no-name'.)
96 '(substitute* "setup.py"
97 (("gzip\\.open\\(gzfile, 'w', 9\\)")
98 "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")))))
ae05b185 99 (build-system python-build-system)
b951e26f
RW
100 (arguments
101 `(#:python ,python-2 ;incompatible with python 3
28fd275c
AI
102 #:phases
103 (modify-phases %standard-phases
104 (add-before 'build 'configure
105 (lambda* (#:key inputs #:allow-other-keys)
106 (substitute* "screenlayout/xrandr.py"
107 (("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
108 "/bin/xrandr\"")))
109 #t)))
b5244fcb 110 #:tests? #f)) ;no tests
b951e26f
RW
111 (inputs `(("pygtk" ,python2-pygtk)
112 ("xrandr" ,xrandr)))
b94a6ca0 113 (native-inputs `(("gettext" ,gettext-minimal)
f3b98f4f 114 ("python-docutils" ,python2-docutils)))
ae05b185
ML
115 (home-page "https://christian.amsuess.com/tools/arandr/")
116 (synopsis "Another RandR graphical user interface")
117 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
118 (description "ARandR is designed to provide a simple visual front end for
119the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
120shown graphically and can be changed in a drag-and-drop way. Configurations
121are saved as executable shell scripts which can be loaded without using this
122program.")
123 (license license:gpl3+)))
124
de878f1b
JD
125(define-public xclip
126 (package
127 (name "xclip")
b2193c35 128 (version "0.13")
de878f1b
JD
129 (source
130 (origin
131 (method url-fetch)
b2193c35
MB
132 (uri (string-append "https://github.com/astrand/xclip"
133 "/archive/" version ".tar.gz"))
e3baf59c 134 (file-name (string-append name "-" version ".tar.gz"))
de878f1b
JD
135 (sha256
136 (base32
b2193c35 137 "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya"))))
de878f1b
JD
138 (build-system gnu-build-system)
139 (arguments
b2193c35
MB
140 '(#:tests? #f ; There is no test suite
141 #:phases
142 (modify-phases %standard-phases
143 ;; Since version 0.13, bootstrapped releases are no longer available.
144 (add-after 'unpack 'bootstrap
145 (lambda _ (zero? (system* "autoreconf" "-v")))))))
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")
fbb4755c 161 (version "0.7.1")
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
fbb4755c 168 "12z6hih3n1r0asp2hzp9qsiwdfkfz46jwp06x8kprr0r5rfk0nds"))))
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")
6f74aecd 226 (version "3.20150503.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
6f74aecd 235 "1lcngsw33fy9my21rdiz1gs474bfdqcfxjrnfggbx4aypn1nhcp8"))
fc1adab1 236 (patches (search-patches "xdotool-fix-makefile.patch"))))
de51bf58
JD
237 (build-system gnu-build-system)
238 (arguments
239 '(#:tests? #f ; Test suite requires a lot of black magic
ca0d2a63 240 #:phases
c237480b
EF
241 (modify-phases %standard-phases
242 (replace 'configure
243 (lambda* (#:key outputs #:allow-other-keys #:rest args)
244 (setenv "PREFIX" (assoc-ref outputs "out"))
245 (setenv "LDFLAGS"
246 (string-append "-Wl,-rpath="
247 (assoc-ref %outputs "out") "/lib"))
248 (setenv "CC" "gcc"))))))
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")
269 (version "1.0.1")
270 (source
271 (origin
272 (method url-fetch)
273 (uri (string-append
274 "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
275 version
276 ".orig.tar.gz"))
277 (sha256
278 (base32
279 "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
280 (build-system gnu-build-system)
281 (inputs
282 `(("libxext" ,libxext)
283 ("libxmu" ,libxmu)
284 ("libxt" ,libxt)))
285 (native-inputs
286 `(("pkg-config" ,pkg-config)))
287 (home-page "http://xeyes.sourcearchive.com/")
288 (synopsis "Follow-the-mouse X demo")
289 (description "Xeyes is a demo program for x.org. It shows eyes
290following the mouse.")
291 (license license:x11)))
292
293
294(define-public pixman
295 (package
296 (name "pixman")
6983ba56 297 (version "0.34.0")
997f86e9
LC
298 (source (origin
299 (method url-fetch)
300 (uri (string-append
301 "http://cairographics.org/releases/pixman-"
302 version ".tar.gz"))
303 (sha256
304 (base32
35bbe88b
MB
305 "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))
306 (patches (search-patches "pixman-CVE-2016-5296.patch"))))
3c156c8a
JD
307 (build-system gnu-build-system)
308 (inputs
997f86e9
LC
309 `(("libpng" ,libpng)
310 ("zlib" ,zlib)))
3c156c8a 311 (native-inputs
997f86e9 312 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
313 (home-page "http://www.pixman.org/")
314 (synopsis "Low-level pixel manipulation library")
315 (description "Pixman is a low-level software library for pixel
316manipulation, providing features such as image compositing and trapezoid
317rasterisation.")
318 (license license:x11)))
319
3c156c8a
JD
320(define-public libdrm
321 (package
322 (name "libdrm")
f3b97f47 323 (version "2.4.91")
3c156c8a
JD
324 (source
325 (origin
326 (method url-fetch)
327 (uri (string-append
5cc3096c 328 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
329 version
330 ".tar.bz2"))
331 (sha256
0b684f49 332 (base32
f3b97f47 333 "0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3"))
fc1adab1 334 (patches (search-patches "libdrm-symbol-check.patch"))))
3c156c8a 335 (build-system gnu-build-system)
1f42989e
EF
336 (arguments
337 `(#:configure-flags
338 '(,@(match (%current-system)
339 ("armhf-linux"
340 '("--enable-exynos-experimental-api"
341 "--enable-omap-experimental-api"
68932812
MB
342 ;; XXX: This fails a symbol check on a build machine:
343 ;; <https://hydra.gnu.org/build/2270314/nixlog/4/raw>
344 ;; TODO: Update the list of symbols.
345 ;;"--enable-etnaviv-experimental-api"
1f42989e
EF
346 "--enable-tegra-experimental-api"
347 "--enable-freedreno-kgsl"))
348 ("aarch64-linux"
349 '("--enable-tegra-experimental-api"
350 "--enable-freedreno-kgsl"))
351 (_ '())))))
3c156c8a 352 (inputs
53e16a5a 353 `(("libpciaccess" ,libpciaccess)))
3c156c8a 354 (native-inputs
53e16a5a
MB
355 `(("pkg-config" ,pkg-config)))
356 (home-page "https://dri.freedesktop.org/wiki/")
3c156c8a
JD
357 (synopsis "Direct rendering userspace library")
358 (description "The Direct Rendering Infrastructure, also known as the DRI,
359is a framework for allowing direct access to graphics hardware under the
360X Window System in a safe and efficient manner. It includes changes to the
361X server, to several client libraries, and to the kernel (DRM, Direct
362Rendering Manager). The most important use for the DRI is to create fast
363OpenGL implementations providing hardware acceleration for Mesa.
364Several 3D accelerated drivers have been written to the DRI specification,
365including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
366and Matrox.")
367 (license license:x11)))
368
369
3c156c8a
JD
370(define-public mtdev
371 (package
372 (name "mtdev")
1f1e620f 373 (version "1.1.5")
3c156c8a
JD
374 (source
375 (origin
376 (method url-fetch)
377 (uri (string-append
378 "http://bitmath.org/code/mtdev/mtdev-"
379 version ".tar.bz2"))
380 (sha256
1f1e620f
EF
381 (base32
382 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
383 (build-system gnu-build-system)
384 (home-page "http://bitmath.org/code/mtdev/")
385 (synopsis "Multitouch protocol translation library")
386 (description "Mtdev is a stand-alone library which transforms all
387variants of kernel MT events to the slotted type B protocol. The events
388put into mtdev may be from any MT device, specifically type A without
389contact tracking, type A with contact tracking, or type B with contact
390tracking.")
391 (license license:x11)))
a693bba1
SB
392
393(define-public startup-notification
394 (package
395 (name "startup-notification")
396 (version "0.12")
397 (source
398 (origin
399 (method url-fetch)
5cc3096c 400 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
401 "/releases/" name "-" version ".tar.gz"))
402 (sha256
403 (base32
404 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
405 (build-system gnu-build-system)
406 (native-inputs `(("pkg-config" ,pkg-config)))
407 (inputs
408 `(("libx11" ,libx11)
409 ("xcb-util" ,xcb-util)))
57e7d748 410 (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
a693bba1
SB
411 (synopsis "Application startup notification and feedback library")
412 (description
413 "Startup-notification contains a reference implementation of the startup
414notification protocol. The reference implementation is mostly under an X Window
415System style license, and has no special dependencies.")
416 ;; Most of the code is provided under x11 license.
417 (license license:lgpl2.0+)))
2e88e089
AK
418
419(define-public wmctrl
420 (package
421 (name "wmctrl")
422 (version "1.07")
423 (source (origin
424 (method url-fetch)
425 (uri (string-append
d6420533 426 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
427 version ".tar.gz"))
428 (sha256
429 (base32
430 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 431 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
432 (build-system gnu-build-system)
433 (arguments
434 '(#:configure-flags
435 (list (string-append "--mandir="
436 (assoc-ref %outputs "out")
437 "/share/man"))))
438 (native-inputs
439 `(("pkg-config" ,pkg-config)))
440 (inputs
441 `(("libx11" ,libx11)
442 ("libxmu" ,libxmu)
443 ("glib" ,glib)))
444 (home-page "http://tomas.styblo.name/wmctrl/")
445 (synopsis "Command-line tool to control X window managers")
446 (description
447 "Wmctrl allows to interact with an X window manager that is compatible
448with the EWMH/NetWM specification. It can query the window manager for
449information, and request for certain window management actions (resize and
e881752c 450move windows, switch between desktops, etc.).")
2e88e089 451 (license license:gpl2+)))
1410f342
AK
452
453(define-public scrot
454 (package
455 (name "scrot")
456 (version "0.8")
457 (source (origin
458 (method url-fetch)
9da459f3
EF
459 (uri (list (string-append
460 "http://linuxbrit.co.uk/downloads/scrot-"
461 version ".tar.gz")
462 (string-append
463 "https://fossies.org/linux/privat/old/scrot-"
c5d15d41 464 version ".tar.gz")))
1410f342
AK
465 (sha256
466 (base32
467 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
468 (build-system gnu-build-system)
469 (arguments
470 ;; By default, man and doc are put in PREFIX/{man,doc} instead of
471 ;; PREFIX/share/{man,doc}.
472 '(#:configure-flags
473 (list (string-append "--mandir="
474 (assoc-ref %outputs "out")
475 "/share/man"))
d5047266
EF
476 #:phases
477 (modify-phases %standard-phases
478 (replace 'install
479 (lambda* (#:key inputs outputs #:allow-other-keys)
480 (let* ((out (assoc-ref outputs "out"))
481 (doc (string-append out "/share/doc/scrot")))
482 (mkdir-p doc)
483 (zero?
484 (system* "make" "install"
485 (string-append "docsdir=" doc)))))))))
1410f342
AK
486 (inputs
487 `(("libx11" ,libx11)
488 ("giblib" ,giblib)))
489 (home-page "http://linuxbrit.co.uk/software/")
490 (synopsis "Command-line screen capture utility for X Window System")
491 (description
492 "Scrot allows to save a screenshot of a full screen, a window or a part
493of the screen selected by mouse.")
494 ;; This license removes a clause about X Consortium from the original
495 ;; X11 license.
496 (license (license:x11-style "file://COPYING"
497 "See 'COPYING' in the distribution."))))
4a01b30b 498
9f1d33be
AK
499(define-public slop
500 (package
501 (name "slop")
8752fa6c 502 (version "7.3.49")
9f1d33be
AK
503 (source (origin
504 (method url-fetch)
505 (uri (string-append
506 "https://github.com/naelstrof/slop/archive/v"
507 version ".tar.gz"))
508 (file-name (string-append name "-" version ".tar.gz"))
509 (sha256
510 (base32
8752fa6c 511 "0gxi174vi13ldjaf776s2jcdyy379lnwwml29nk1bkzj5d5gpghm"))))
9f1d33be 512 (build-system cmake-build-system)
937b71df 513 (arguments
e1c014d7 514 '(#:tests? #f)) ; no "check" target
9f1d33be 515 (inputs
eb2b5f9d
MB
516 `(("glew" ,glew)
517 ("glm" ,glm)
01614de1 518 ("icu4c" ,icu4c)
9f1d33be 519 ("libxext" ,libxext)
e1c014d7 520 ("libxrender" ,libxrender)
9f1d33be
AK
521 ("mesa" ,mesa)))
522 (home-page "https://github.com/naelstrof/slop")
523 (synopsis "Select a region and print its bounds to stdout")
524 (description
525 "slop (Select Operation) is a tool that queries for a selection from a
526user and prints the region to stdout. It grabs the mouse and turns it into a
527crosshair, lets the user click and drag to make a selection (or click on a
528window) while drawing a pretty box around it, then finally prints the
529selection's dimensions to stdout.")
530 (license license:gpl3+)))
531
5c93de73
AK
532(define-public maim
533 (package
534 (name "maim")
a251838d 535 (version "5.4.68")
5c93de73
AK
536 (source (origin
537 (method url-fetch)
538 (uri (string-append
539 "https://github.com/naelstrof/maim/archive/v"
540 version ".tar.gz"))
541 (file-name (string-append name "-" version ".tar.gz"))
542 (sha256
543 (base32
a251838d 544 "0f54s7csrxjd5r9anqqa92diwmzdplpws3llmbr6g3c0l6bp8815"))))
5c93de73
AK
545 (build-system cmake-build-system)
546 (arguments
2b7d10d2 547 '(#:tests? #f)) ; no "check" target
5c93de73 548 (inputs
2b7d10d2
MB
549 `(("glm" ,glm)
550 ("libjpeg" ,libjpeg-turbo)
551 ("libpng" ,libpng)
552 ("libxcomposite" ,libxcomposite)
5c93de73 553 ("libxfixes" ,libxfixes)
2b7d10d2
MB
554 ("libxrandr" ,libxrandr)
555 ("mesa" ,mesa)
556 ("slop" ,slop)
557 ("zlib" ,zlib)))
5c93de73
AK
558 (home-page "https://github.com/naelstrof/maim")
559 (synopsis "Screenshot utility for X Window System")
560 (description
561 "maim (Make Image) is a tool that takes screenshots of your desktop and
562saves it in any format. Along with a full screen, it allows you to capture a
563predefined region or a particular window. Also, it makes it possible to
564include cursor in the resulting image.")
565 (license license:gpl3+)))
566
4a01b30b
AK
567(define-public unclutter
568 (package
569 (name "unclutter")
570 (version "8")
571 (source (origin
572 (method url-fetch)
573 (uri (string-append
574 "http://ftp.x.org/contrib/utilities/unclutter-"
575 version ".tar.Z"))
576 (sha256
577 (base32
578 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
579 (build-system gnu-build-system)
580 (arguments
581 '(#:tests? #f ; no check target
ea0836cd
EF
582 #:phases
583 (modify-phases %standard-phases
584 (delete 'configure)
585 (replace 'install
586 (lambda* (#:key inputs outputs #:allow-other-keys)
587 (let* ((out (assoc-ref outputs "out"))
588 (bin (string-append out "/bin"))
589 (man1 (string-append out "/share/man/man1")))
590 (mkdir-p bin)
591 (mkdir-p man1)
592 (zero?
593 (system* "make" "install" "install.man"
594 (string-append "BINDIR=" bin)
595 (string-append "MANDIR=" man1)))))))))
4a01b30b
AK
596 (inputs `(("libx11" ,libx11)))
597 (home-page "http://ftp.x.org/contrib/utilities/")
598 (synopsis "Hide idle mouse cursor")
599 (description
600 "Unclutter is a program which runs permanently in the background of an
601X11 session. It checks on the X11 pointer (cursor) position every few
602seconds, and when it finds it has not moved (and no buttons are pressed
603on the mouse, and the cursor is not in the root window) it creates a
604small sub-window as a child of the window the cursor is in. The new
605window installs a cursor of size 1x1 but a mask of all 0, i.e. an
606invisible cursor. This allows you to see all the text in an xterm or
607xedit, for example. The human factors crowd would agree it should make
608things less distracting.")
609 (license license:public-domain)))
ab69d9ac 610
6e79949f 611(define-public xautomation
612 (package
613 (name "xautomation")
614 (version "1.09")
615 (source
616 (origin
617 (method url-fetch)
618 (uri (string-append "https://www.hoopajoo.net/static/projects/"
619 "xautomation-" version ".tar.gz"))
620
621 (sha256
622 (base32
623 "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
624 (build-system gnu-build-system)
625 (inputs
626 `(("libpng" ,libpng)
627 ("libx11" ,libx11)
628 ("libxi" ,libxi)
629 ("libxtst" ,libxtst)))
630 (native-inputs
631 `(("inputproto" ,inputproto)
632 ("xextproto" ,xextproto)
633 ("xproto" ,xproto)))
634 (synopsis "Tools to automate tasks in X such as detecting on screen images")
635 (description
636 "Xautomation can control X from the command line for scripts, and
637do visual scraping to find things on the screen. The control interface
638allows mouse movement, clicking, button up/down, key up/down, etc, and
639uses the XTest extension so you don't have the annoying problems that
640xse has when apps ignore sent events. The visgrep program can find
641images inside of images and reports the coordinates, allowing progams
642to find buttons, etc, on the screen to click on.")
643 (home-page "https://www.hoopajoo.net/projects/xautomation.html")
644 (license license:gpl2+)))
645
ab69d9ac
LC
646(define-public xlockmore
647 (package
648 (name "xlockmore")
e6f6d765 649 (version "5.55")
ab69d9ac
LC
650 (source (origin
651 (method url-fetch)
2ec42868
TGR
652 (uri (list (string-append "http://sillycycle.com/xlock/"
653 name "-" version ".tar.xz")
654 ;; Previous releases are moved to a subdirectory.
655 (string-append "http://sillycycle.com/xlock/"
656 "recent-releases/"
657 name "-" version ".tar.xz")))
ab69d9ac
LC
658 (sha256
659 (base32
e6f6d765 660 "1y3f76rq2nd10fgi2rx81aj6pijglmm661vjsxi05hpg35dzmwfl"))))
ab69d9ac
LC
661 (build-system gnu-build-system)
662 (arguments
663 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
664 (assoc-ref %outputs "out")
665 "/lib/X11/app-defaults"))
666 #:tests? #f)) ;no such thing as a test suite
667 (inputs
668 `(("libX11" ,libx11)
669 ("libXext" ,libxext)
670 ("libXt" ,libxt)
671 ("linux-pam" ,linux-pam)))
2ec42868 672 (home-page "http://sillycycle.com/xlockmore.html")
ab69d9ac
LC
673 (synopsis "Screen locker for the X Window System")
674 (description
675 "XLockMore is a classic screen locker and screen saver for the
676X Window System.")
166191b3 677 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 678 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
679
680(define-public xosd
681 (package
682 (name "xosd")
683 (version "2.2.14")
684 (source (origin
685 (method url-fetch)
686 (uri (string-append
de67e922
LF
687 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
688 name "-" version ".tar.gz"))
11447a79
AK
689 (sha256
690 (base32
691 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
692 (build-system gnu-build-system)
693 (arguments
694 '(#:configure-flags
695 (list (string-append "--mandir=" %output "/share/man"))))
696 (inputs
697 `(("libx11" ,libx11)
698 ("libxt" ,libxt)
699 ("libxext" ,libxext)
700 ("libxinerama" ,libxinerama)))
3b3b60d0 701 (home-page "https://sourceforge.net/projects/libxosd/")
11447a79
AK
702 (synopsis "X On Screen Display")
703 (description
704 "XOSD provides a C library and a simple utility (osd_cat) for displaying
705transparent text on your screen.")
706 (license license:gpl2+)))
76212b57
ML
707
708(define-public xbindkeys
709 (package
710 (name "xbindkeys")
711 (version "1.8.6")
712 (source (origin
713 (method url-fetch)
714 ;; Download from the savannah mirror list fails
715 (uri (string-append
716 "http://www.nongnu.org/xbindkeys/xbindkeys-"
717 version
718 ".tar.gz"))
719 (sha256
720 (base32
721 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
722 (build-system gnu-build-system)
723 (inputs
724 `(("libx11" ,libx11)
725 ("guile" ,guile-2.0)))
340978d7 726 (home-page "https://www.nongnu.org/xbindkeys/")
76212b57
ML
727 (synopsis "Associate a combination of keys with a shell command")
728 (description
729 "XBindKeys is a program that allows you to launch shell commands with
730your keyboard or your mouse under the X Window System. It links commands to
731keys or mouse buttons, using a configuration file. It's independent of the
732window manager and can capture all keyboard keys (ex: Power, Wake...). It
733optionally supports a Guile-based configuration file layout, which enables you
734to access all XBindKeys internals, so you can have key combinations, double
735clicks or timed double clicks take actions. Also all functions that work in
736Guile will work for XBindKeys.")
737 (license license:gpl2+)))
42f2c2b9 738
998b8c07 739(define-public sxhkd
740 (package
741 (name "sxhkd")
46cd684e 742 (version "0.5.6")
998b8c07 743 (source
744 (origin
745 (file-name (string-append name "-" version ".tar.gz"))
746 (method url-fetch)
747 (uri (string-append
748 "https://github.com/baskerville/sxhkd/archive/"
749 version ".tar.gz"))
750 (sha256
751 (base32
46cd684e 752 "15grmzpxz5fqlbfg2slj7gb7r6nzkvjmflmbkqx7mlby9pm6wdkj"))))
998b8c07 753 (build-system gnu-build-system)
754 (inputs
755 `(("asciidoc" ,asciidoc)
756 ("libxcb" ,libxcb)
757 ("xcb-util" ,xcb-util)
758 ("xcb-util-keysyms" ,xcb-util-keysyms)
759 ("xcb-util-wm" ,xcb-util-wm)))
760 (arguments
dc1d3cde 761 '(#:phases (modify-phases %standard-phases (delete 'configure))
998b8c07 762 #:tests? #f ; no check target
763 #:make-flags (list "CC=gcc"
764 (string-append "PREFIX=" %output))))
765 (home-page "https://github.com/baskerville/sxhkd")
766 (synopsis "Simple X hotkey daemon")
767 (description "sxhkd is a simple X hotkey daemon with a powerful and
768compact configuration syntax.")
769 (license license:bsd-2)))
770
42f2c2b9
AG
771(define-public rxvt-unicode
772 (package
773 (name "rxvt-unicode")
71ca0539 774 (version "9.22")
1ef3f91a
ML
775 (source (origin
776 (method url-fetch)
63999415 777 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a 778 name "-" version ".tar.bz2"))
0fd0bb56 779 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
1ef3f91a
ML
780 (sha256
781 (base32
71ca0539 782 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 783 (build-system gnu-build-system)
1ef3f91a
ML
784 (arguments
785 ;; This sets the destination when installing the necessary terminal
786 ;; capability data, which are not provided by 'ncurses'. See
787 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
33c93ea3 788 `(#:make-flags (list (string-append "TERMINFO="
1ef3f91a 789 (assoc-ref %outputs "out")
33c93ea3 790 "/share/terminfo"))
791 #:phases
792 (modify-phases %standard-phases
793 (add-after 'install 'install-desktop-urxvt
794 (lambda* (#:key outputs #:allow-other-keys)
795 (let* ((output (assoc-ref outputs "out"))
796 (desktop (string-append output "/share/applications")))
797 (mkdir-p desktop)
798 (with-output-to-file
799 (string-append desktop "/urxvt.desktop")
800 (lambda _
801 (format #t
802 "[Desktop Entry]~@
803 Name=rxvt-unicode~@
804 Comment=~@
805 Exec=~a/bin/urxvt~@
806 TryExec=~@*~a/bin/urxvt~@
807 Icon=~@
808 Type=Application~%"
809 output)))
810 #t)))
811 (add-after 'install 'install-desktop-urxvtc
812 (lambda* (#:key outputs #:allow-other-keys)
813 (let* ((output (assoc-ref outputs "out"))
814 (desktop (string-append output "/share/applications")))
815 (mkdir-p desktop)
816 (with-output-to-file
817 (string-append desktop "/urxvtc.desktop")
818 (lambda _
819 (format #t
820 "[Desktop Entry]~@
120349bf 821 Name=rxvt-unicode (client)~@
33c93ea3 822 Comment=Rxvt clone with XFT and unicode support~@
823 Exec=~a/bin/urxvtc~@
824 TryExec=~@*~a/bin/urxvtc~@
825 Icon=~@
826 Type=Application~%"
827 output)))
828 #t))))))
42f2c2b9
AG
829 (inputs
830 `(("libXft" ,libxft)
831 ("libX11" ,libx11)))
832 (native-inputs
1ef3f91a
ML
833 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
834 ("perl" ,perl)
42f2c2b9 835 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
836 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
837 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
838 (native-search-paths
839 (list (search-path-specification
840 (variable "TERMINFO_DIRS")
841 (files '("share/terminfo")))))
42f2c2b9
AG
842 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
843 (synopsis "Rxvt clone with XFT and unicode support")
844 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
845intended as an xterm replacement for users who do not require features such as
846Tektronix 4014 emulation and toolkit-style configurability. It supports
847unicode, XFT and may be extended with Perl plugins. It also comes with a
848client/daemon pair that lets you open any number of terminal windows from
849within a single process.")
850 (license license:gpl3+)))
ca0d2a63
AG
851
852(define-public xcape
853 (package
854 (name "xcape")
82f44a36 855 (version "1.2")
ca0d2a63
AG
856 (source
857 (origin
858 (method url-fetch)
859 (uri (string-append "https://github.com/alols/" name
860 "/archive/v" version ".tar.gz"))
861 (file-name (string-append name "-" version ".tar.gz"))
862 (sha256
863 (base32
82f44a36 864 "0898zc3vwxia00h9kfknpf7jygxgwggrx8v5mxc31w4lzn2dhzm2"))))
ca0d2a63
AG
865 (build-system gnu-build-system)
866 (arguments
867 `(#:tests? #f ; no check target
dc1d3cde
KK
868 ;; no configure script
869 #:phases (modify-phases %standard-phases (delete 'configure))
ca0d2a63
AG
870 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
871 "MANDIR=/share/man/man1"
872 "CC=gcc")))
873 (inputs
874 `(("libxtst" ,libxtst)
875 ("libx11" ,libx11)))
876 (native-inputs
877 `(("pkg-config" ,pkg-config)))
7bf837fd 878 (home-page "https://github.com/alols/xcape")
ca0d2a63
AG
879 (synopsis "Use a modifier key in X.org as another key")
880 (description
881 "This utility for X.org allows to use modifier key as another key when
882pressed and released on its own. The default behaviour is to generate the
883Escape key when Left Control is pressed and released on its own.")
884 (license license:gpl3+)))
f1f7049e
AW
885
886(define-public libwacom
887 (package
888 (name "libwacom")
f4f69c51 889 (version "0.29")
f1f7049e
AW
890 (source (origin
891 (method url-fetch)
892 (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/"
893 name "-" version ".tar.bz2"))
894 (sha256
895 (base32
f4f69c51 896 "1diklgcjhmvcxi9p1ifp6wcnyr6k7z9jhrlzfhzjqd6zipk01slw"))))
f1f7049e
AW
897 (build-system glib-or-gtk-build-system)
898 (native-inputs
899 `(("pkg-config" ,pkg-config)))
900 (inputs
34efce4f 901 `(("gtk+" ,gtk+)
b9cbe316 902 ("libgudev" ,libgudev)
f1f7049e
AW
903 ("eudev" ,eudev)
904 ("libxml2" ,libxml2)))
34efce4f
AW
905 (propagated-inputs
906 ;; libwacom includes header files that include GLib, and libinput uses
907 ;; those header files.
908 `(("glib" ,glib)))
f1f7049e
AW
909 (home-page "http://linuxwacom.sourceforge.net/")
910 (synopsis "Helper library for Wacom tablet settings")
911 (description
34efce4f
AW
912 "Libwacom is a library to help implement Wacom tablet settings. It is
913intended to be used by client-programs that need model identification. It is
914already being used by the gnome-settings-daemon and the GNOME Control Center
915Wacom tablet applet.")
f1f7049e 916 (license license:x11)))
ab42a2a7
AW
917
918(define-public xf86-input-wacom
919 (package
920 (name "xf86-input-wacom")
ee9c7156 921 (version "0.36.0")
ab42a2a7
AW
922 (source (origin
923 (method url-fetch)
924 (uri (string-append
925 "mirror://sourceforge/linuxwacom/xf86-input-wacom/"
926 name "-" version ".tar.bz2"))
927 (sha256
928 (base32
ee9c7156 929 "1xi39hl8ddgj9m7m2k2ll2r3wh0k0aq45fvrsv43651bhz9cbrza"))))
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)))
947 (home-page "http://linuxwacom.sourceforge.net/")
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")
85a94d29 957 (version "1.11")
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
85a94d29 967 "0ngkwj7rg8nfk806w0sg443w6wjr91xdc0zisqfm5h2i77wm1qqh"))))
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)
6645753b
FPS
977 ("glib" ,glib))) ;for Geoclue2 support
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")
0379e362 991 (version "5.38")
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
0379e362 1000 "1f58h5rgjbxr4hh40m6zkpkzbzg68l7nqzjwal0b17yysafbmsf6"))))
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")
7aef9930 1250 (version "1.2")
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
7aef9930 1258 "0vbqhag51i0njc8d5fc8c6aa12496cwrc3s6s7sa5kfc17cwhppp"))
4493a3c2
MB
1259 (modules '((guix build utils)))
1260 (snippet
1261 ;; Drop bundled m4.
1262 '(delete-file-recursively "m4"))))
1263 (build-system gnu-build-system)
1264 (native-inputs
1265 `(("pkg-config" ,pkg-config)
1266 ("m4" ,m4)
1267 ("libx11" ,libx11))) ; for tests
1268 (inputs
1269 `(("libxcb" ,libxcb)
1270 ("xcb-util" ,xcb-util)))
1271 (home-page "https://github.com/Airblader/xcb-util-xrm")
1272 (synopsis "XCB utility functions for the X resource manager")
1273 (description
1274 "The XCB util module provides a number of libraries which sit on
1275top of libxcb, the core X protocol library, and some of the extension
1276libraries. These experimental libraries provide convenience functions
1277and interfaces which make the raw X protocol more usable. Some of the
1278libraries also provide client-side code which is not strictly part of
1279the X protocol but which has traditionally been provided by Xlib.
1280
1281XCB util-xrm module provides the following libraries:
1282
1283- xrm: utility functions for the X resource manager.")
1284 (license license:x11)))
01278f16
P
1285
1286(define-public xcalib
1287 (package
1288 (name "xcalib")
1289 (version "0.8")
1290 (source (origin
1291 (method url-fetch)
1292 (uri (string-append "mirror://sourceforge/xcalib/xcalib/" version
1293 "/xcalib-source-" version ".tar.gz"))
1294 (sha256
1295 (base32
1296 "1rh6xb51c5xz926dnn82a2fn643g0sr4a8z66rn6yi7523kjw4ca"))))
1297 (build-system gnu-build-system)
1298 (arguments
1299 '(#:make-flags '("CC=gcc")
1300 #:tests? #f ; No test suite
1301 #:phases (modify-phases %standard-phases
1302 (delete 'configure)
1303 (replace 'install
1304 (lambda* (#:key outputs #:allow-other-keys)
1305 (let* ((out (assoc-ref outputs "out"))
1306 (bin (string-append out "/bin")))
1307 (install-file "xcalib" bin))))
1308 (add-after 'install 'install-doc
1309 (lambda* (#:key outputs #:allow-other-keys)
1310 (let ((doc (string-append(assoc-ref outputs "out")
1311 "/share/doc/xcalib")))
1312 (install-file "README" doc)
1313 ;; Avoid unspecified return value.
1314 #t))))))
c695fb76
TGR
1315 (inputs `(("libx11" ,libx11)
1316 ("libxext" ,libxext)
1317 ("libxxf86vm" ,libxxf86vm)))
01278f16
P
1318 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1319 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1320profiles to the video card's gamma ramp. It does work with most video card
1321drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1322invert colors on a specific display/screen.")
1323 (home-page "http://xcalib.sourceforge.net/")
1324 (license license:gpl2)))
f021382b
MB
1325
1326(define-public nxbelld
1327 (package
1328 (name "nxbelld")
1329 (version "0.1.2")
1330 (source (origin
1331 (method git-fetch)
1332 (uri (git-reference
1333 (url "https://github.com/dusxmt/nxbelld.git")
1334 (commit version)))
1335 (sha256
1336 (base32
1337 "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
1338 (file-name (git-file-name name version))))
1339 (build-system gnu-build-system)
1340 (arguments '(#:configure-flags `("--enable-sound"
1341 "--enable-wave"
1342 "--enable-alsa")
1343 #:phases (modify-phases %standard-phases
1344 (add-before 'configure 'autoreconf
1345 (lambda _
1346 (zero? (system* "autoreconf" "-vfi")))))))
1347 (native-inputs `(("autoconf" ,autoconf)
1348 ("automake" ,automake)
1349 ("pkg-config" ,pkg-config)
1350 ("perl" ,perl)))
1351 (inputs `(("libx11" ,libx11)
1352 ("alsa-lib" ,alsa-lib)))
1353 (synopsis "Daemon that performs an action every time the X11 bell is rung")
1354 (description "nxbelld is a tiny utility to aid people who either don't
1355like the default PC speaker beep, or use a sound driver that doesn't have
1356support for the PC speaker. The utility performs a given action every time
1357the X bell is rung. The actions nxbelld can currently perform include running
1358a specified program, emulating the PC speaker beep using the sound card (default),
1359or playing a PCM encoded WAVE file.")
1360 (home-page "https://github.com/dusxmt/nxbelld")
1361 (license license:gpl3+)))
1d752e43
MG
1362
1363(define-public xautolock
1364 (package
1365 (name "xautolock")
1366 (version "2.2")
1367 (source (origin
1368 (method url-fetch)
1369 (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
1370 name "-" version ".tgz"))
1371 (sha256
1372 (base32
1373 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
1374 (build-system gnu-build-system)
1375 (native-inputs
1376 `(("imake" ,imake)))
1377 (inputs
1378 `(("libx11" ,libx11)
1379 ("libxext" ,libxext)
1380 ("libxscrnsaver" ,libxscrnsaver)))
1381 (arguments
1382 `(#:tests? #f
1383 #:phases
1384 (modify-phases %standard-phases
1385 (replace 'configure
1386 (lambda* (#:key inputs outputs #:allow-other-keys)
1387 (let ((imake (assoc-ref inputs "imake"))
1388 (out (assoc-ref outputs "out")))
1389 ;; Generate Makefile
1390 (invoke "xmkmf")
1391 (substitute* "Makefile"
1392 ;; These imake variables somehow remain undefined
1393 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
1394 ;; Reset a few variable defaults that are set in imake templates
1395 ((imake) out)
1396 (("(MANPATH = )[[:graph:]]*" _ front)
1397 (string-append front out "/share/man")))
1398 ;; Old BSD-style 'union wait' is unneeded (defining
1399 ;; _USE_BSD did not seem to fix it)
1400 (substitute* "src/engine.c"
1401 (("union wait status") "int status = 0"))
1402 #t)))
1403 (add-after 'install 'install/man
1404 (lambda _
1405 (zero? (system* "make" "install.man")))))))
1406 (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
1407 (synopsis "Program launcher for idle X sessions")
1408 (description "Xautolock monitors input devices under the X Window
1409System, and launches a program of your choice if there is no activity after
1410a user-configurable period of time.")
1411 (license license:gpl2)))
af1e3dfe
T
1412
1413(define-public screen-message
1414 (package
1415 (name "screen-message")
1416 (version "0.25")
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append
1420 "https://www.joachim-breitner.de/archive/screen-message"
1421 "/screen-message-" version ".tar.gz"))
1422 (sha256
1423 (base32
1424 "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
1425 (build-system gnu-build-system)
1426 (inputs `(("gtk3" ,gtk+)
1427 ("gdk" ,gdk-pixbuf)
1428 ("pango" ,pango)))
1429 (native-inputs `(("pkg-config" ,pkg-config)))
1430 (arguments
1431 ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
1432 ;; this fixes it:
1433 `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
1434 (synopsis "Print messages on your screen")
1435 (description "@code{screen-message} is a tool for displaying text on
1436your screen. It will make the text as large as possible and display it
1437with black color on a white background (colors are configurable on the
1438commandline).")
1439 (home-page "https://www.joachim-breitner.de/projects#screen-message")
1440 (license license:gpl2+)))