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