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