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