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