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