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