gnu: mercurial: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
CommitLineData
3c156c8a
JD
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
56ac2bf4 3;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
3c156c8a 4;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
9f1d33be 5;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
7dc96170 6;;; Copyright © 2013, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
751f6871 7;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
42f2c2b9 8;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
f1f7049e 9;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
998b8c07 10;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
6645753b 11;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
6f74aecd 12;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
4cbbb160 13;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
acedaec7 14;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
71ca0539 15;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
6cfd1a68 16;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
0ea0452c 17;;; Copyright © 2016, 2017, 2019 Marius Bakke <mbakke@fastmail.com>
01278f16 18;;; Copyright © 2016 Petter <petter@mykolab.ch>
37447422 19;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
47956fa0 20;;; Copyright © 2017 ng0 <ng0@n0.is>
7953675f 21;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
f021382b 22;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
1d752e43 23;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
af1e3dfe 24;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
95bf2fb6 25;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
d748cb5f 26;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
d852cf9e 27;;; Copyright © 2018 Nam Nguyen <namn@berkeley.edu>
9ba1e308 28;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
af96c417 29;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
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")
3a24bf3a 305 (version "0.9.1")
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
3a24bf3a
MB
312 "1q4v378sr9ad8fy9znl7k8xpf0wch655r9m6z0bcc7sw1azsminl"))))
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
JD
452 (build-system gnu-build-system)
453 (inputs
997f86e9
LC
454 `(("libpng" ,libpng)
455 ("zlib" ,zlib)))
3c156c8a 456 (native-inputs
997f86e9 457 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
458 (home-page "http://www.pixman.org/")
459 (synopsis "Low-level pixel manipulation library")
460 (description "Pixman is a low-level software library for pixel
461manipulation, providing features such as image compositing and trapezoid
462rasterisation.")
463 (license license:x11)))
464
3c156c8a
JD
465(define-public libdrm
466 (package
467 (name "libdrm")
bb14766e 468 (version "2.4.100")
3c156c8a
JD
469 (source
470 (origin
471 (method url-fetch)
472 (uri (string-append
5cc3096c 473 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
474 version
475 ".tar.bz2"))
476 (sha256
0b684f49 477 (base32
bb14766e 478 "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67"))
fc1adab1 479 (patches (search-patches "libdrm-symbol-check.patch"))))
34b81a9c 480 (build-system meson-build-system)
1f42989e
EF
481 (arguments
482 `(#:configure-flags
483 '(,@(match (%current-system)
c022edf6
EF
484 ((or "armhf-linux" "aarch64-linux")
485 '("-Dexynos=true"
486 "-Domap=true"
487 "-Detnaviv=true"
488 "-Dtegra=true"
34b81a9c 489 "-Dfreedreno-kgsl=true"))
fe7c6f91 490 (_ '())))
7dc96170
LC
491
492 #:phases (modify-phases %standard-phases
493 (replace 'check
494 (lambda _
495 (invoke "meson" "test" "--timeout-multiplier" "5"))))))
3c156c8a 496 (inputs
53e16a5a 497 `(("libpciaccess" ,libpciaccess)))
3c156c8a 498 (native-inputs
53e16a5a
MB
499 `(("pkg-config" ,pkg-config)))
500 (home-page "https://dri.freedesktop.org/wiki/")
3c156c8a
JD
501 (synopsis "Direct rendering userspace library")
502 (description "The Direct Rendering Infrastructure, also known as the DRI,
503is a framework for allowing direct access to graphics hardware under the
504X Window System in a safe and efficient manner. It includes changes to the
505X server, to several client libraries, and to the kernel (DRM, Direct
506Rendering Manager). The most important use for the DRI is to create fast
507OpenGL implementations providing hardware acceleration for Mesa.
508Several 3D accelerated drivers have been written to the DRI specification,
509including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
510and Matrox.")
511 (license license:x11)))
512
513
3c156c8a
JD
514(define-public mtdev
515 (package
516 (name "mtdev")
1f1e620f 517 (version "1.1.5")
3c156c8a
JD
518 (source
519 (origin
520 (method url-fetch)
521 (uri (string-append
522 "http://bitmath.org/code/mtdev/mtdev-"
523 version ".tar.bz2"))
524 (sha256
1f1e620f
EF
525 (base32
526 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
527 (build-system gnu-build-system)
528 (home-page "http://bitmath.org/code/mtdev/")
529 (synopsis "Multitouch protocol translation library")
530 (description "Mtdev is a stand-alone library which transforms all
531variants of kernel MT events to the slotted type B protocol. The events
532put into mtdev may be from any MT device, specifically type A without
533contact tracking, type A with contact tracking, or type B with contact
534tracking.")
535 (license license:x11)))
a693bba1
SB
536
537(define-public startup-notification
538 (package
539 (name "startup-notification")
540 (version "0.12")
541 (source
542 (origin
543 (method url-fetch)
5cc3096c 544 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
545 "/releases/" name "-" version ".tar.gz"))
546 (sha256
547 (base32
548 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
549 (build-system gnu-build-system)
550 (native-inputs `(("pkg-config" ,pkg-config)))
551 (inputs
552 `(("libx11" ,libx11)
553 ("xcb-util" ,xcb-util)))
57e7d748 554 (home-page "https://www.freedesktop.org/wiki/Software/startup-notification/")
a693bba1
SB
555 (synopsis "Application startup notification and feedback library")
556 (description
557 "Startup-notification contains a reference implementation of the startup
558notification protocol. The reference implementation is mostly under an X Window
559System style license, and has no special dependencies.")
560 ;; Most of the code is provided under x11 license.
561 (license license:lgpl2.0+)))
2e88e089
AK
562
563(define-public wmctrl
564 (package
565 (name "wmctrl")
566 (version "1.07")
567 (source (origin
568 (method url-fetch)
569 (uri (string-append
d6420533 570 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
571 version ".tar.gz"))
572 (sha256
573 (base32
574 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 575 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
576 (build-system gnu-build-system)
577 (arguments
578 '(#:configure-flags
579 (list (string-append "--mandir="
580 (assoc-ref %outputs "out")
581 "/share/man"))))
582 (native-inputs
583 `(("pkg-config" ,pkg-config)))
584 (inputs
585 `(("libx11" ,libx11)
586 ("libxmu" ,libxmu)
587 ("glib" ,glib)))
588 (home-page "http://tomas.styblo.name/wmctrl/")
589 (synopsis "Command-line tool to control X window managers")
590 (description
591 "Wmctrl allows to interact with an X window manager that is compatible
592with the EWMH/NetWM specification. It can query the window manager for
593information, and request for certain window management actions (resize and
e881752c 594move windows, switch between desktops, etc.).")
2e88e089 595 (license license:gpl2+)))
1410f342
AK
596
597(define-public scrot
598 (package
599 (name "scrot")
d258d9c7 600 (version "1.2")
7953675f
TGR
601 (source
602 (origin
603 (method git-fetch)
604 (uri
605 (git-reference
606 (url "https://github.com/resurrecting-open-source-projects/scrot.git")
607 (commit version)))
c9750434 608 (file-name (git-file-name name version))
7953675f 609 (sha256
d258d9c7 610 (base32 "08gkdby0ysx2mki57z81zlm7vfnq9c1gq692xw67cg5vv2p3320w"))))
1410f342 611 (build-system gnu-build-system)
7953675f
TGR
612 (native-inputs
613 `(("autoconf" ,autoconf)
d258d9c7 614 ("autoconf-archive" ,autoconf-archive)
7953675f 615 ("automake" ,automake)))
1410f342 616 (inputs
7953675f 617 `(("giblib" ,giblib)
d258d9c7
TLC
618 ("libx11" ,libx11)
619 ("libXcursor" ,libxcursor)
620 ("libXfixes" ,libxfixes)))
7953675f 621 (home-page "https://github.com/resurrecting-open-source-projects/scrot")
1410f342
AK
622 (synopsis "Command-line screen capture utility for X Window System")
623 (description
624 "Scrot allows to save a screenshot of a full screen, a window or a part
625of the screen selected by mouse.")
626 ;; This license removes a clause about X Consortium from the original
627 ;; X11 license.
628 (license (license:x11-style "file://COPYING"
629 "See 'COPYING' in the distribution."))))
4a01b30b 630
9f1d33be
AK
631(define-public slop
632 (package
633 (name "slop")
89f9ffff 634 (version "7.4")
9f1d33be 635 (source (origin
25d09f60
RW
636 (method git-fetch)
637 (uri (git-reference
638 (url "https://github.com/naelstrof/slop.git")
639 (commit (string-append "v" version))))
640 (file-name (git-file-name name version))
9f1d33be
AK
641 (sha256
642 (base32
25d09f60 643 "0fgd8a2dqkg64all0f96sca92sdss9r3pzmv5kck46b99z2325z6"))))
9f1d33be 644 (build-system cmake-build-system)
937b71df 645 (arguments
e1c014d7 646 '(#:tests? #f)) ; no "check" target
9f1d33be 647 (inputs
eb2b5f9d
MB
648 `(("glew" ,glew)
649 ("glm" ,glm)
01614de1 650 ("icu4c" ,icu4c)
9f1d33be 651 ("libxext" ,libxext)
e1c014d7 652 ("libxrender" ,libxrender)
9f1d33be
AK
653 ("mesa" ,mesa)))
654 (home-page "https://github.com/naelstrof/slop")
655 (synopsis "Select a region and print its bounds to stdout")
656 (description
657 "slop (Select Operation) is a tool that queries for a selection from a
658user and prints the region to stdout. It grabs the mouse and turns it into a
659crosshair, lets the user click and drag to make a selection (or click on a
660window) while drawing a pretty box around it, then finally prints the
661selection's dimensions to stdout.")
662 (license license:gpl3+)))
663
5c93de73
AK
664(define-public maim
665 (package
666 (name "maim")
af1d777e 667 (version "5.5.3")
5c93de73 668 (source (origin
ab3159f8
RW
669 (method git-fetch)
670 (uri (git-reference
671 (url "https://github.com/naelstrof/maim.git")
672 (commit (string-append "v" version))))
673 (file-name (git-file-name name version))
5c93de73
AK
674 (sha256
675 (base32
af1d777e 676 "1kbxsz8whfxl5blwsvpva2q95zwy72argwhi1cfqh5lrhzq5zrpp"))))
5c93de73
AK
677 (build-system cmake-build-system)
678 (arguments
2b7d10d2 679 '(#:tests? #f)) ; no "check" target
5c93de73 680 (inputs
2b7d10d2
MB
681 `(("glm" ,glm)
682 ("libjpeg" ,libjpeg-turbo)
683 ("libpng" ,libpng)
684 ("libxcomposite" ,libxcomposite)
5c93de73 685 ("libxfixes" ,libxfixes)
2b7d10d2
MB
686 ("libxrandr" ,libxrandr)
687 ("mesa" ,mesa)
688 ("slop" ,slop)
689 ("zlib" ,zlib)))
5c93de73
AK
690 (home-page "https://github.com/naelstrof/maim")
691 (synopsis "Screenshot utility for X Window System")
692 (description
693 "maim (Make Image) is a tool that takes screenshots of your desktop and
694saves it in any format. Along with a full screen, it allows you to capture a
695predefined region or a particular window. Also, it makes it possible to
696include cursor in the resulting image.")
697 (license license:gpl3+)))
698
4a01b30b
AK
699(define-public unclutter
700 (package
701 (name "unclutter")
702 (version "8")
703 (source (origin
704 (method url-fetch)
705 (uri (string-append
706 "http://ftp.x.org/contrib/utilities/unclutter-"
707 version ".tar.Z"))
708 (sha256
709 (base32
710 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
711 (build-system gnu-build-system)
712 (arguments
713 '(#:tests? #f ; no check target
ea0836cd
EF
714 #:phases
715 (modify-phases %standard-phases
716 (delete 'configure)
717 (replace 'install
718 (lambda* (#:key inputs outputs #:allow-other-keys)
719 (let* ((out (assoc-ref outputs "out"))
720 (bin (string-append out "/bin"))
721 (man1 (string-append out "/share/man/man1")))
722 (mkdir-p bin)
723 (mkdir-p man1)
e61c2991
TGR
724 (invoke "make" "install" "install.man"
725 (string-append "BINDIR=" bin)
726 (string-append "MANDIR=" man1))))))))
4a01b30b
AK
727 (inputs `(("libx11" ,libx11)))
728 (home-page "http://ftp.x.org/contrib/utilities/")
729 (synopsis "Hide idle mouse cursor")
730 (description
731 "Unclutter is a program which runs permanently in the background of an
732X11 session. It checks on the X11 pointer (cursor) position every few
733seconds, and when it finds it has not moved (and no buttons are pressed
734on the mouse, and the cursor is not in the root window) it creates a
735small sub-window as a child of the window the cursor is in. The new
736window installs a cursor of size 1x1 but a mask of all 0, i.e. an
737invisible cursor. This allows you to see all the text in an xterm or
738xedit, for example. The human factors crowd would agree it should make
739things less distracting.")
740 (license license:public-domain)))
ab69d9ac 741
6e79949f 742(define-public xautomation
743 (package
744 (name "xautomation")
745 (version "1.09")
746 (source
747 (origin
748 (method url-fetch)
749 (uri (string-append "https://www.hoopajoo.net/static/projects/"
750 "xautomation-" version ".tar.gz"))
751
752 (sha256
753 (base32
754 "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
755 (build-system gnu-build-system)
756 (inputs
757 `(("libpng" ,libpng)
758 ("libx11" ,libx11)
759 ("libxi" ,libxi)
760 ("libxtst" ,libxtst)))
761 (native-inputs
82b4d9ec 762 `(("xorgproto" ,xorgproto)))
6e79949f 763 (synopsis "Tools to automate tasks in X such as detecting on screen images")
764 (description
765 "Xautomation can control X from the command line for scripts, and
766do visual scraping to find things on the screen. The control interface
767allows mouse movement, clicking, button up/down, key up/down, etc, and
768uses the XTest extension so you don't have the annoying problems that
769xse has when apps ignore sent events. The visgrep program can find
168d5634 770images inside of images and reports the coordinates, allowing programs
6e79949f 771to find buttons, etc, on the screen to click on.")
772 (home-page "https://www.hoopajoo.net/projects/xautomation.html")
773 (license license:gpl2+)))
774
0ea0452c
MB
775(define-public xbanish
776 (package
777 (name "xbanish")
778 (version "1.6")
779 (home-page "https://github.com/jcs/xbanish")
780 (source (origin
781 (method git-fetch)
782 (uri (git-reference (url home-page)
783 (commit (string-append "v" version))))
f1d4d79f 784 (file-name (git-file-name name version))
0ea0452c
MB
785 (sha256
786 (base32
787 "0vp8ja68hpmqkl61zyjar3czhmny1hbm74m8f393incfz1ymr3i8"))))
788 (build-system gnu-build-system)
789 (arguments
790 `(#:tests? #f ;no tests
791 #:make-flags (list "CC=gcc"
792 (string-append "PREFIX=" (assoc-ref %outputs "out")))
793 #:phases (modify-phases %standard-phases
794 (delete 'configure))))
795 (inputs
796 `(("libx11" ,libx11)
797 ("libxfixes" ,libxfixes)
798 ("libxi" ,libxi)
799 ("libxt" ,libxt)))
800 (synopsis "Banish the mouse cursor")
801 (description
802 "@command{xbanish} hides the mouse cursor when you start typing, and
803shows it again when the mouse cursor moves or a mouse button is pressed.")
804 (license license:bsd-3)))
805
ab69d9ac
LC
806(define-public xlockmore
807 (package
808 (name "xlockmore")
8e936351 809 (version "5.59")
ab69d9ac
LC
810 (source (origin
811 (method url-fetch)
2ec42868 812 (uri (list (string-append "http://sillycycle.com/xlock/"
3596b994 813 "xlockmore-" version ".tar.xz")
2ec42868
TGR
814 ;; Previous releases are moved to a subdirectory.
815 (string-append "http://sillycycle.com/xlock/"
816 "recent-releases/"
3596b994 817 "xlockmore-" version ".tar.xz")))
ab69d9ac
LC
818 (sha256
819 (base32
8e936351 820 "0lajc5a4lki33b9mzfsi74q4hbivbmhwysp7mib4ivnyxianhaid"))))
ab69d9ac
LC
821 (build-system gnu-build-system)
822 (arguments
823 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
824 (assoc-ref %outputs "out")
825 "/lib/X11/app-defaults"))
826 #:tests? #f)) ;no such thing as a test suite
827 (inputs
828 `(("libX11" ,libx11)
829 ("libXext" ,libxext)
830 ("libXt" ,libxt)
831 ("linux-pam" ,linux-pam)))
2ec42868 832 (home-page "http://sillycycle.com/xlockmore.html")
ab69d9ac
LC
833 (synopsis "Screen locker for the X Window System")
834 (description
835 "XLockMore is a classic screen locker and screen saver for the
836X Window System.")
166191b3 837 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 838 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
839
840(define-public xosd
841 (package
842 (name "xosd")
843 (version "2.2.14")
844 (source (origin
845 (method url-fetch)
846 (uri (string-append
de67e922
LF
847 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
848 name "-" version ".tar.gz"))
11447a79
AK
849 (sha256
850 (base32
851 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
852 (build-system gnu-build-system)
853 (arguments
854 '(#:configure-flags
855 (list (string-append "--mandir=" %output "/share/man"))))
856 (inputs
857 `(("libx11" ,libx11)
858 ("libxt" ,libxt)
859 ("libxext" ,libxext)
860 ("libxinerama" ,libxinerama)))
3b3b60d0 861 (home-page "https://sourceforge.net/projects/libxosd/")
11447a79
AK
862 (synopsis "X On Screen Display")
863 (description
864 "XOSD provides a C library and a simple utility (osd_cat) for displaying
865transparent text on your screen.")
866 (license license:gpl2+)))
76212b57
ML
867
868(define-public xbindkeys
869 (package
870 (name "xbindkeys")
871 (version "1.8.6")
872 (source (origin
873 (method url-fetch)
874 ;; Download from the savannah mirror list fails
875 (uri (string-append
876 "http://www.nongnu.org/xbindkeys/xbindkeys-"
877 version
878 ".tar.gz"))
879 (sha256
880 (base32
881 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
882 (build-system gnu-build-system)
883 (inputs
884 `(("libx11" ,libx11)
885 ("guile" ,guile-2.0)))
340978d7 886 (home-page "https://www.nongnu.org/xbindkeys/")
76212b57
ML
887 (synopsis "Associate a combination of keys with a shell command")
888 (description
889 "XBindKeys is a program that allows you to launch shell commands with
890your keyboard or your mouse under the X Window System. It links commands to
891keys or mouse buttons, using a configuration file. It's independent of the
892window manager and can capture all keyboard keys (ex: Power, Wake...). It
893optionally supports a Guile-based configuration file layout, which enables you
894to access all XBindKeys internals, so you can have key combinations, double
895clicks or timed double clicks take actions. Also all functions that work in
896Guile will work for XBindKeys.")
897 (license license:gpl2+)))
42f2c2b9 898
998b8c07 899(define-public sxhkd
900 (package
901 (name "sxhkd")
1c6884ee 902 (version "0.6.1")
998b8c07 903 (source
904 (origin
f8f0b652
TGR
905 (method git-fetch)
906 (uri (git-reference
907 (url "https://github.com/baskerville/sxhkd")
908 (commit version)))
f9447ded 909 (file-name (git-file-name name version))
998b8c07 910 (sha256
1c6884ee 911 (base32 "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"))))
998b8c07 912 (build-system gnu-build-system)
913 (inputs
914 `(("asciidoc" ,asciidoc)
915 ("libxcb" ,libxcb)
916 ("xcb-util" ,xcb-util)
917 ("xcb-util-keysyms" ,xcb-util-keysyms)
918 ("xcb-util-wm" ,xcb-util-wm)))
919 (arguments
f8f0b652 920 `(#:phases (modify-phases %standard-phases (delete 'configure))
998b8c07 921 #:tests? #f ; no check target
f8f0b652
TGR
922 #:make-flags
923 (list "CC=gcc"
924 (string-append "PREFIX=" %output)
925 ;; Keep the documentation where the build system installs LICENSE.
926 (string-append "DOCPREFIX=" %output
927 "/share/doc/" ,name "-" ,version))))
998b8c07 928 (home-page "https://github.com/baskerville/sxhkd")
929 (synopsis "Simple X hotkey daemon")
930 (description "sxhkd is a simple X hotkey daemon with a powerful and
931compact configuration syntax.")
932 (license license:bsd-2)))
933
42f2c2b9
AG
934(define-public rxvt-unicode
935 (package
936 (name "rxvt-unicode")
71ca0539 937 (version "9.22")
1ef3f91a
ML
938 (source (origin
939 (method url-fetch)
63999415 940 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a 941 name "-" version ".tar.bz2"))
0fd0bb56 942 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
1ef3f91a
ML
943 (sha256
944 (base32
71ca0539 945 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 946 (build-system gnu-build-system)
1ef3f91a
ML
947 (arguments
948 ;; This sets the destination when installing the necessary terminal
949 ;; capability data, which are not provided by 'ncurses'. See
950 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
33c93ea3 951 `(#:make-flags (list (string-append "TERMINFO="
1ef3f91a 952 (assoc-ref %outputs "out")
33c93ea3 953 "/share/terminfo"))
954 #:phases
955 (modify-phases %standard-phases
956 (add-after 'install 'install-desktop-urxvt
957 (lambda* (#:key outputs #:allow-other-keys)
958 (let* ((output (assoc-ref outputs "out"))
959 (desktop (string-append output "/share/applications")))
960 (mkdir-p desktop)
961 (with-output-to-file
962 (string-append desktop "/urxvt.desktop")
963 (lambda _
964 (format #t
965 "[Desktop Entry]~@
966 Name=rxvt-unicode~@
967 Comment=~@
968 Exec=~a/bin/urxvt~@
969 TryExec=~@*~a/bin/urxvt~@
970 Icon=~@
971 Type=Application~%"
972 output)))
973 #t)))
974 (add-after 'install 'install-desktop-urxvtc
975 (lambda* (#:key outputs #:allow-other-keys)
976 (let* ((output (assoc-ref outputs "out"))
977 (desktop (string-append output "/share/applications")))
978 (mkdir-p desktop)
979 (with-output-to-file
980 (string-append desktop "/urxvtc.desktop")
981 (lambda _
982 (format #t
983 "[Desktop Entry]~@
120349bf 984 Name=rxvt-unicode (client)~@
33c93ea3 985 Comment=Rxvt clone with XFT and unicode support~@
986 Exec=~a/bin/urxvtc~@
987 TryExec=~@*~a/bin/urxvtc~@
988 Icon=~@
989 Type=Application~%"
990 output)))
991 #t))))))
42f2c2b9
AG
992 (inputs
993 `(("libXft" ,libxft)
994 ("libX11" ,libx11)))
995 (native-inputs
1ef3f91a
ML
996 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
997 ("perl" ,perl)
42f2c2b9 998 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
999 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
1000 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
1001 (native-search-paths
1002 (list (search-path-specification
1003 (variable "TERMINFO_DIRS")
1004 (files '("share/terminfo")))))
42f2c2b9
AG
1005 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
1006 (synopsis "Rxvt clone with XFT and unicode support")
1007 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
1008intended as an xterm replacement for users who do not require features such as
1009Tektronix 4014 emulation and toolkit-style configurability. It supports
1010unicode, XFT and may be extended with Perl plugins. It also comes with a
1011client/daemon pair that lets you open any number of terminal windows from
1012within a single process.")
1013 (license license:gpl3+)))
ca0d2a63
AG
1014
1015(define-public xcape
1016 (package
1017 (name "xcape")
82f44a36 1018 (version "1.2")
4bb74ed5
RW
1019 (source (origin
1020 (method git-fetch)
1021 (uri (git-reference
1022 (url "https://github.com/alols/xcape.git")
1023 (commit (string-append "v" version))))
1024 (file-name (git-file-name name version))
1025 (sha256
1026 (base32
1027 "09a05cxgrip6nqy1qmwblamp2bhknqnqmxn7i2a1rgxa0nba95dm"))))
ca0d2a63
AG
1028 (build-system gnu-build-system)
1029 (arguments
1030 `(#:tests? #f ; no check target
dc1d3cde
KK
1031 ;; no configure script
1032 #:phases (modify-phases %standard-phases (delete 'configure))
ca0d2a63
AG
1033 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
1034 "MANDIR=/share/man/man1"
1035 "CC=gcc")))
1036 (inputs
1037 `(("libxtst" ,libxtst)
1038 ("libx11" ,libx11)))
1039 (native-inputs
1040 `(("pkg-config" ,pkg-config)))
7bf837fd 1041 (home-page "https://github.com/alols/xcape")
ca0d2a63
AG
1042 (synopsis "Use a modifier key in X.org as another key")
1043 (description
1044 "This utility for X.org allows to use modifier key as another key when
1045pressed and released on its own. The default behaviour is to generate the
1046Escape key when Left Control is pressed and released on its own.")
1047 (license license:gpl3+)))
f1f7049e
AW
1048
1049(define-public libwacom
1050 (package
1051 (name "libwacom")
e8d6e361 1052 (version "1.1")
f1f7049e
AW
1053 (source (origin
1054 (method url-fetch)
0ac68e72
TGR
1055 (uri (string-append
1056 "https://github.com/linuxwacom/libwacom/releases/download/"
cffdcbef 1057 "libwacom-" version "/libwacom-" version ".tar.bz2"))
f1f7049e
AW
1058 (sha256
1059 (base32
e8d6e361 1060 "00lyv419ijyng6ak5vpw0swnn4qg6lbfh7zysf92wcvn6rcq7d4c"))))
f1f7049e 1061 (build-system glib-or-gtk-build-system)
4ad2c9db
MB
1062 (arguments
1063 `(#:configure-flags '("--disable-static")))
f1f7049e
AW
1064 (native-inputs
1065 `(("pkg-config" ,pkg-config)))
1066 (inputs
34efce4f 1067 `(("gtk+" ,gtk+)
b9cbe316 1068 ("libgudev" ,libgudev)
f1f7049e
AW
1069 ("eudev" ,eudev)
1070 ("libxml2" ,libxml2)))
34efce4f
AW
1071 (propagated-inputs
1072 ;; libwacom includes header files that include GLib, and libinput uses
1073 ;; those header files.
1074 `(("glib" ,glib)))
81dc1d12 1075 (home-page "https://linuxwacom.github.io/")
f1f7049e
AW
1076 (synopsis "Helper library for Wacom tablet settings")
1077 (description
34efce4f
AW
1078 "Libwacom is a library to help implement Wacom tablet settings. It is
1079intended to be used by client-programs that need model identification. It is
1080already being used by the gnome-settings-daemon and the GNOME Control Center
1081Wacom tablet applet.")
f1f7049e 1082 (license license:x11)))
ab42a2a7
AW
1083
1084(define-public xf86-input-wacom
1085 (package
1086 (name "xf86-input-wacom")
e14d7f20 1087 (version "0.38.0")
fe049752
TGR
1088 (source
1089 (origin
1090 (method url-fetch)
1091 (uri (string-append
1092 "https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
b106dd84
TGR
1093 "xf86-input-wacom-" version "/"
1094 "xf86-input-wacom-" version ".tar.bz2"))
fe049752 1095 (sha256
e14d7f20 1096 (base32 "0w53hv3g7d5vv328x04wb57sa1lyv2h631c37csp1drfp7ghikd1"))))
ab42a2a7
AW
1097 (arguments
1098 `(#:configure-flags
1099 (list (string-append "--with-sdkdir="
1100 (assoc-ref %outputs "out")
1101 "/include/xorg")
1102 (string-append "--with-xorg-conf-dir="
1103 (assoc-ref %outputs "out")
1104 "/share/X11/xorg.conf.d"))))
1105 (build-system gnu-build-system)
1106 (native-inputs
1107 `(("pkg-config" ,pkg-config)))
1108 (inputs
1109 `(("xorg-server" ,xorg-server)
1110 ("libxrandr" ,libxrandr)
1111 ("libxinerama" ,libxinerama)
1112 ("libxi" ,libxi)
1113 ("eudev" ,eudev)))
81dc1d12 1114 (home-page "https://linuxwacom.github.io/")
ab42a2a7
AW
1115 (synopsis "Wacom input driver for X")
1116 (description
1117 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
1118the X.Org X Server version 1.7 and later (X11R7.5 or later).")
1119 (license license:x11)))
6645753b
FPS
1120
1121(define-public redshift
1122 (package
1123 (name "redshift")
a5a568d2 1124 (version "1.12")
6645753b
FPS
1125 (source
1126 (origin
1127 (method url-fetch)
1128 (uri
1129 (string-append "https://github.com/jonls/redshift/"
1130 "releases/download/v" version
1131 "/redshift-" version ".tar.xz"))
1132 (sha256
1133 (base32
a5a568d2 1134 "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j"))))
6645753b
FPS
1135 (build-system gnu-build-system)
1136 (native-inputs
1137 `(("pkg-config" ,pkg-config)
1138 ("intltool" ,intltool)))
1139 (inputs
1140 `(("libdrm" ,libdrm)
1141 ("libx11" ,libx11)
1142 ("libxcb" ,libxcb)
b3546174 1143 ("libxxf86vm" ,libxxf86vm)
a5a568d2 1144 ("glib" ,glib))) ; for Geoclue2 support
6645753b
FPS
1145 (home-page "https://github.com/jonls/redshift")
1146 (synopsis "Adjust the color temperature of your screen")
1147 (description
1148 "Redshift adjusts the color temperature according to the position of the
1149sun. A different color temperature is set during night and daytime. During
1150twilight and early morning, the color temperature transitions smoothly from
1151night to daytime temperature to allow your eyes to slowly adapt. At night the
1152color temperature should be set to match the lamps in your room.")
1153 (license license:gpl3+)))
b4c400a7 1154
264a63d6
JH
1155(define-public redshift-wayland
1156 (let ((commit "7da875d34854a6a34612d5ce4bd8718c32bec804")
1157 (revision "1"))
1158 (package
1159 (name "redshift-wayland")
1160 (version (string-append "1.12-"
1161 revision "." (string-take commit 7)))
1162 (source (origin
1163 (method git-fetch)
1164 (uri (git-reference
1165 (url "https://github.com/minus7/redshift.git")
1166 (commit commit)))
1167 (file-name (string-append name "-" version))
1168 (sha256
1169 (base32
1170 "0nbkcw3avmzjg1jr1g9yfpm80kzisy55idl09b6wvzv2sz27n957"))))
1171 (build-system gnu-build-system)
1172 (native-inputs
1173 `(("autoconf" ,autoconf)
1174 ("automake" ,automake)
1175 ("libtool" ,libtool)
1176 ("pkg-config" ,pkg-config)
1177 ("intltool" ,intltool)))
1178 (inputs
1179 `(("libdrm" ,libdrm)
1180 ("libx11" ,libx11)
1181 ("libxcb" ,libxcb)
1182 ("libxxf86vm" ,libxxf86vm)
1183 ("glib" ,glib) ; for Geoclue2 support
1184 ("wayland" ,wayland)))
1185 (home-page "https://github.com/minus7/redshift")
1186 (synopsis "Adjust the color temperature of your screen (with Wayland support)")
1187 (description
1188 "Redshift adjusts the color temperature according to the position of the
1189sun. A different color temperature is set during night and daytime. During
1190twilight and early morning, the color temperature transitions smoothly from
1191night to daytime temperature to allow your eyes to slowly adapt. At night the
1192color temperature should be set to match the lamps in your room.
1193
1194This is a fork with added support for Wayland using the wlr-gamma-control
1195protocol.")
1196 (license license:gpl3+))))
1197
b4c400a7
CAW
1198(define-public xscreensaver
1199 (package
1200 (name "xscreensaver")
4995a404 1201 (version "5.43")
b4c400a7
CAW
1202 (source
1203 (origin
1204 (method url-fetch)
1205 (uri
1206 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
1207 version ".tar.gz"))
1208 (sha256
4995a404 1209 (base32 "1571pj1a9998sq14y9366s2rw9wd2kq3l3dvvsk610vyd0fki3qm"))))
b4c400a7
CAW
1210 (build-system gnu-build-system)
1211 (arguments
4995a404 1212 `(#:tests? #f ; no check target
b4c400a7
CAW
1213 #:phases
1214 (modify-phases %standard-phases
1215 (add-before 'configure 'adjust-gtk-resource-paths
1216 (lambda _
1217 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
1218 (("@GTK_DATADIR@") "@datadir@")
c6bf07d1
MW
1219 (("@PO_DATADIR@") "@datadir@"))
1220 #t)))
b4c400a7
CAW
1221 #:configure-flags '("--with-pam" "--with-proc-interrupts"
1222 "--without-readdisplay")
4cf57c3c 1223 #:make-flags (list (string-append "AD_DIR="
b4c400a7
CAW
1224 (assoc-ref %outputs "out")
1225 "/usr/lib/X11/app-defaults"))))
1226 (native-inputs
1227 `(("pkg-config" ,pkg-config)
1228 ("intltool" ,intltool)))
1229 (inputs
1230 `(("libx11" ,libx11)
1231 ("libxext" ,libxext)
1232 ("libxi" ,libxi)
1233 ("libxt" ,libxt)
1234 ("libxft" ,libxft)
1235 ("libxmu" ,libxmu)
1236 ("libxpm" ,libxpm)
1237 ("libglade" ,libglade)
1238 ("libxml2" ,libxml2)
1239 ("libsm" ,libsm)
1240 ("libjpeg" ,libjpeg)
1241 ("linux-pam" ,linux-pam)
1242 ("pango" ,pango)
1243 ("gtk+" ,gtk+)
1244 ("perl" ,perl)
1245 ("cairo" ,cairo)
1246 ("bc" ,bc)
1247 ("libxrandr" ,libxrandr)
1248 ("glu" ,glu)
1249 ("glib" ,glib)))
1250 (home-page "https://www.jwz.org/xscreensaver/")
1251 (synopsis "Classic screen saver suite supporting screen locking")
1252 (description
1253 "xscreensaver is a popular screen saver collection with many entertaining
1254demos. It also acts as a nice screen locker.")
1255 ;; xscreensaver doesn't have a single copyright file and instead relies on
1256 ;; source comment headers, though most files have the same lax
1257 ;; permissions. To reduce complexity, we're pointing at Debian's
1258 ;; breakdown of the copyright information.
1259 (license (license:non-copyleft
1260 (string-append
1261 "http://metadata.ftp-master.debian.org/changelogs/"
706998e7 1262 "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
f40dfcd0 1263
cab1c117
MB
1264(define-public xsel
1265 (package
1266 (name "xsel")
1267 (version "1.2.0")
1268 (source (origin
1269 (method url-fetch)
1270 (uri (string-append "http://www.vergenet.net/~conrad/software"
1271 "/xsel/download/xsel-" version ".tar.gz"))
1272 (sha256
1273 (base32
1274 "070lbcpw77j143jrbkh0y1v10ppn1jwmjf92800w7x42vh4cw9xr"))))
1275 (build-system gnu-build-system)
1276 (inputs
1277 `(("libxt" ,libxt)))
1278 (home-page "http://www.vergenet.net/~conrad/software/xsel/")
1279 (synopsis "Manipulate X selection")
1280 (description
1281 "XSel is a command-line program for getting and setting the contents of
1282the X selection. Normally this is only accessible by manually highlighting
1283information and pasting it with the middle mouse button.
1284
1285XSel reads from standard input and writes to standard output by default,
1286but can also follow a growing file, display contents, delete entries and more.")
1287 (license (license:x11-style "file://COPYING"
1288 "See COPYING in the distribution."))))
1289
6cfd1a68
AK
1290(define-public xdpyprobe
1291 (package
1292 (name "xdpyprobe")
1293 (version "0.1")
1294 (source (origin
1295 (method url-fetch)
1296 (uri (string-append "https://github.com/alezost/" name
1297 "/releases/download/v" version
1298 "/" name "-" version ".tar.gz"))
1299 (sha256
1300 (base32
1301 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
1302 (build-system gnu-build-system)
1303 (inputs
1304 `(("libx11" ,libx11)))
1305 (home-page "https://github.com/alezost/xdpyprobe")
1306 (synopsis "Probe X server for connectivity")
1307 (description
1308 "Xdpyprobe is a tiny C program whose only purpose is to probe a
1309connectivity of the X server running on a particular @code{DISPLAY}.")
1310 (license license:gpl3+)))
1311
f40dfcd0
DM
1312(define-public rofi
1313 (package
1314 (name "rofi")
dc29bea3 1315 (version "1.5.4")
f40dfcd0
DM
1316 (source (origin
1317 (method url-fetch)
1318 (uri (string-append "https://github.com/DaveDavenport/rofi/"
1319 "releases/download/"
1320 version "/rofi-" version ".tar.xz"))
1321 (sha256
1322 (base32
dc29bea3 1323 "1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
f40dfcd0
DM
1324 (build-system gnu-build-system)
1325 (inputs
68c35ba9 1326 `(("pango" ,pango)
f40dfcd0
DM
1327 ("cairo" ,cairo)
1328 ("glib" ,glib)
1329 ("startup-notification" ,startup-notification)
23e12d9d 1330 ("librsvg" ,librsvg)
f40dfcd0
DM
1331 ("libxkbcommon" ,libxkbcommon)
1332 ("libxcb" ,libxcb)
1333 ("xcb-util" ,xcb-util)
68c35ba9 1334 ("xcb-util-xrm" ,xcb-util-xrm)
f40dfcd0
DM
1335 ("xcb-util-wm" ,xcb-util-wm)))
1336 (native-inputs
23e12d9d 1337 `(("bison" ,bison)
dfdf8d74 1338 ("check" ,check)
23e12d9d 1339 ("flex" ,flex)
a3a7eb2f 1340 ("glib:bin" ,glib "bin")
23e12d9d 1341 ("pkg-config" ,pkg-config)))
f40dfcd0 1342 (arguments
8cba7d2a 1343 `(#:parallel-tests? #f ; fails in some circumstances
46d6219d 1344 #:phases
f40dfcd0
DM
1345 (modify-phases %standard-phases
1346 (add-before 'configure 'adjust-tests
1347 (lambda _
1348 (substitute* '("test/helper-expand.c")
1349 (("~root") "/root")
1350 (("~") "")
a3a7eb2f 1351 (("g_get_home_dir \\(\\)") "\"/\""))
576e0ae4 1352 #t)))))
06229f18 1353 (home-page "https://github.com/DaveDavenport/rofi")
89be33f7
TGR
1354 (synopsis "Application launcher")
1355 (description "Rofi is a minimalist application launcher. It memorizes which
1356applications you regularly use and also allows you to search for an application
f40dfcd0
DM
1357by name.")
1358 (license license:expat)))
751f6871
ML
1359
1360(define-public tint2
1361 (package
1362 (name "tint2")
1ffe4171 1363 (version "0.14.6")
751f6871
ML
1364 (source (origin
1365 (method url-fetch)
1366 (uri (string-append "https://gitlab.com/o9000/" name
1367 "/repository/archive.tar.gz?ref=" version))
1368 (file-name (string-append name "-" version ".tar.gz"))
1369 (sha256
1370 (base32
1ffe4171 1371 "1kwzwxy4myagybm3rc7dgynfgp75742n348qibn1p2an9ggyivda"))))
751f6871
ML
1372 (build-system cmake-build-system)
1373 (arguments
1374 '(#:tests? #f ;no test target
1375 #:phases
1376 (modify-phases %standard-phases
1377 (add-after 'unpack 'fix-installation-prefix
1378 (lambda _
1379 (substitute* "CMakeLists.txt"
c6bf07d1
MW
1380 (("/etc") "${CMAKE_INSTALL_PREFIX}/etc"))
1381 #t)))))
751f6871
ML
1382 (inputs
1383 `(("gtk+" ,gtk+-2)
1384 ("imlib2" ,imlib2)
1385 ("librsvg" ,librsvg)
1386 ("libxcomposite" ,libxcomposite)
1387 ("libxdamage" ,libxdamage)
1388 ("libxft" ,libxft)
1389 ("libxinerama" ,libxinerama)
1390 ("libxrandr" ,libxrandr)
1391 ("startup-notification" ,startup-notification)))
1392 (native-inputs
b94a6ca0 1393 `(("gettext" ,gettext-minimal)
751f6871
ML
1394 ("pkg-config" ,pkg-config)))
1395 (home-page "https://gitlab.com/o9000/tint2")
1396 (synopsis "Lightweight task bar")
1397 (description
1398 "Tint2 is a simple task bar made for modern X window managers. It was
1399specifically made for Openbox but it should also work with other window
1400managers (GNOME, KDE, XFCE etc.).
1401
1402The taskbar includes transparency and color settings for the font, icons,
1403border, and background. It also supports multihead setups, customized mouse
1404actions, a built-in clock, a battery monitor and a system tray.")
1405 (license license:gpl2)))
4493a3c2 1406
37447422
MM
1407(define-public dzen
1408 (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
1409 (revision "1"))
1410 (package
1411 (name "dzen")
1412 (version (string-append "0.9.5-" ; Taken from `config.mk`.
1413 revision "." (string-take commit 7)))
1414 (source (origin
1415 (method git-fetch)
1416 (uri (git-reference
1417 (url "https://github.com/robm/dzen.git")
1418 (commit commit)))
1419 (file-name (string-append name "-" version))
1420 (sha256
1421 (base32
1422 "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
1423 (build-system gnu-build-system)
1424 (arguments
1425 `(#:tests? #f ; No test suite.
1426 #:make-flags ; Replacement for `config.mk`.
1427 (list
1428 (string-append "VERSION = " ,version)
1429 (string-append "PREFIX = " %output)
1430 "MANPREFIX = ${PREFIX}/share/man"
1431 "INCS = -I."
1432 "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
1433 "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
1434 -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
1435 "LDFLAGS = ${LIBS}"
1436 "CC = gcc"
1437 "LD = ${CC}")
1438 #:phases
1439 (modify-phases %standard-phases
1440 (delete 'configure) ; No configuration script.
1441 ;; Use own make-flags instead of `config.mk`.
1442 (add-before 'build 'dont-include-config-mk
1443 (lambda _
1444 (substitute* "Makefile" (("include config.mk") ""))
1445 #t)))))
1446 (inputs
1447 `(("libx11" ,libx11)
1448 ("libxft" ,libxft)
1449 ("libxpm" ,libxpm)
1450 ("libxinerama" ,libxinerama)))
1451 (native-inputs `(("pkg-config" ,pkg-config)))
1452 (synopsis "General purpose messaging, notification and menuing program for X11")
1453 (description "Dzen is a general purpose messaging, notification and menuing
1454program for X11. It was designed to be fast, tiny and scriptable in any language.")
1455 (home-page "https://github.com/robm/dzen")
1456 (license license:expat))))
1457
af96c417
KA
1458(define-public xftwidth
1459 (package
1460 (name "xftwidth")
1461 (version "20170402")
1462 (source
1463 (origin
1464 (method git-fetch)
1465 (uri (git-reference
1466 (url "http://github.com/vixus0/xftwidth")
1467 (commit "35ff963908d41a8a6a7101c434c88255728025ee")))
1468 (sha256
1469 (base32
1470 "1jwl25785li24kbp0m1wxfwk4dgxkliynn03nsj813cjr34kq16h"))
1471 (file-name (string-append name "-" version "-checkout"))))
1472 (build-system gnu-build-system)
1473 (inputs `(("freetype" ,freetype)
1474 ("libx11" ,libx11)
1475 ("fontconfig" ,fontconfig)
1476 ("libxft" ,libxft)))
1477 (native-inputs
1478 `(("pkg-config" ,pkg-config)))
1479 (arguments
1480 '(#:phases
1481 (modify-phases %standard-phases
1482 (add-after 'unpack 'fix-makefile ; /usr/bin doesn't show up in PATH
1483 (lambda _ (substitute* "Makefile" (("usr/") "")) #t))
1484 (delete 'check) ; no check included in Makefile
1485 (delete 'configure))
1486 #:make-flags
1487 (let ((out (assoc-ref %outputs "out")))
1488 (list (string-append "DESTDIR=" out)))))
1489 (synopsis "Calculator for determining pixel widths of displayed text using Xft fonts")
1490 (description "xftwidth is a small C program for calculating the pixel
1491widths of displayed text using Xft fonts. It is especially useful in scripts
1492for displaying text in graphical panels, menus, popups, and notification
1493windows generated using dzen. These scripts are often used in conjunction with
1494minimalistic tiling window managers such as herbstluftwm and bspwm.")
1495 (home-page "http://github.com/vixus0/xftwidth")
1496 (license license:expat)))
1497
4493a3c2
MB
1498(define-public xcb-util-xrm
1499 (package
1500 (name "xcb-util-xrm")
40fb6b84 1501 (version "1.3")
4493a3c2
MB
1502 (source (origin
1503 (method url-fetch)
1504 (uri (string-append
1505 "https://github.com/Airblader/xcb-util-xrm/releases"
1506 "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
1507 (sha256
1508 (base32
40fb6b84 1509 "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h"))
4493a3c2
MB
1510 (modules '((guix build utils)))
1511 (snippet
1512 ;; Drop bundled m4.
6cbee49d
MW
1513 '(begin
1514 (delete-file-recursively "m4")
1515 #t))))
4493a3c2
MB
1516 (build-system gnu-build-system)
1517 (native-inputs
1518 `(("pkg-config" ,pkg-config)
1519 ("m4" ,m4)
1520 ("libx11" ,libx11))) ; for tests
1521 (inputs
1522 `(("libxcb" ,libxcb)
1523 ("xcb-util" ,xcb-util)))
1524 (home-page "https://github.com/Airblader/xcb-util-xrm")
1525 (synopsis "XCB utility functions for the X resource manager")
1526 (description
1527 "The XCB util module provides a number of libraries which sit on
1528top of libxcb, the core X protocol library, and some of the extension
1529libraries. These experimental libraries provide convenience functions
1530and interfaces which make the raw X protocol more usable. Some of the
1531libraries also provide client-side code which is not strictly part of
1532the X protocol but which has traditionally been provided by Xlib.
1533
1534XCB util-xrm module provides the following libraries:
1535
1536- xrm: utility functions for the X resource manager.")
1537 (license license:x11)))
01278f16
P
1538
1539(define-public xcalib
1540 (package
1541 (name "xcalib")
6d727bf4
TGR
1542 (version "0.10")
1543 (home-page "https://github.com/OpenICC/xcalib")
01278f16 1544 (source (origin
6d727bf4
TGR
1545 (method git-fetch)
1546 (uri (git-reference
1547 (url home-page)
1548 (commit version)))
f1d4d79f 1549 (file-name (git-file-name name version))
01278f16
P
1550 (sha256
1551 (base32
6d727bf4
TGR
1552 "05fzdjmhiafgi2jf0k41i3nm0837a78sb6yv59cwc23nla8g0bhr"))
1553 (patches
1554 (list
1555 ;; Add missing documentation for the new --output option.
1556 ;; This upstream patch can be removed on the next update.
1557 (origin
1558 (method url-fetch)
1559 (uri (string-append
1560 home-page "/commit/"
1561 "ae03889b91fe984b18e925ad2b5e6f2f7354e058.patch"))
1562 (file-name "xcalib-update-man-page.patch")
1563 (sha256
1564 (base32
1565 "0f7b4d5484x4b9n1bwhqmar0kcaa029ffff7bp3xpr734n1qgqb6")))))))
1566 (build-system cmake-build-system)
01278f16 1567 (arguments
6d727bf4 1568 '(#:tests? #f)) ; no test suite
c695fb76
TGR
1569 (inputs `(("libx11" ,libx11)
1570 ("libxext" ,libxext)
6d727bf4 1571 ("libxrandr" ,libxrandr)
c695fb76 1572 ("libxxf86vm" ,libxxf86vm)))
01278f16
P
1573 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1574 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1575profiles to the video card's gamma ramp. It does work with most video card
1576drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1577invert colors on a specific display/screen.")
01278f16 1578 (license license:gpl2)))
f021382b
MB
1579
1580(define-public nxbelld
1581 (package
1582 (name "nxbelld")
1583 (version "0.1.2")
1584 (source (origin
1585 (method git-fetch)
1586 (uri (git-reference
1587 (url "https://github.com/dusxmt/nxbelld.git")
1588 (commit version)))
1589 (sha256
1590 (base32
1591 "04qwhmjs51irinz5mjlxdb3dc6vr79dqmc5fkj80x1ll3ylh5n3z"))
1592 (file-name (git-file-name name version))))
1593 (build-system gnu-build-system)
1594 (arguments '(#:configure-flags `("--enable-sound"
1595 "--enable-wave"
4cbbb160
RW
1596 "--enable-alsa")))
1597 (native-inputs `(("autoconf" ,autoconf)
1598 ("automake" ,automake)
1599 ("pkg-config" ,pkg-config)
1600 ("perl" ,perl)))
f021382b
MB
1601 (inputs `(("libx11" ,libx11)
1602 ("alsa-lib" ,alsa-lib)))
1603 (synopsis "Daemon that performs an action every time the X11 bell is rung")
1604 (description "nxbelld is a tiny utility to aid people who either don't
1605like the default PC speaker beep, or use a sound driver that doesn't have
1606support for the PC speaker. The utility performs a given action every time
1607the X bell is rung. The actions nxbelld can currently perform include running
1608a specified program, emulating the PC speaker beep using the sound card (default),
1609or playing a PCM encoded WAVE file.")
1610 (home-page "https://github.com/dusxmt/nxbelld")
1611 (license license:gpl3+)))
1d752e43
MG
1612
1613(define-public xautolock
1614 (package
1615 (name "xautolock")
1616 (version "2.2")
1617 (source (origin
1618 (method url-fetch)
1619 (uri (string-append "http://www.ibiblio.org/pub/linux/X11/screensavers/"
1620 name "-" version ".tgz"))
1621 (sha256
1622 (base32
1623 "18jd3k3pvlm5x1adyqw63z2b3f4ixh9mfvz9asvnskk3fm8jgw0i"))))
1624 (build-system gnu-build-system)
1625 (native-inputs
1626 `(("imake" ,imake)))
1627 (inputs
1628 `(("libx11" ,libx11)
1629 ("libxext" ,libxext)
1630 ("libxscrnsaver" ,libxscrnsaver)))
1631 (arguments
1632 `(#:tests? #f
1633 #:phases
1634 (modify-phases %standard-phases
1635 (replace 'configure
1636 (lambda* (#:key inputs outputs #:allow-other-keys)
1637 (let ((imake (assoc-ref inputs "imake"))
1638 (out (assoc-ref outputs "out")))
1639 ;; Generate Makefile
1640 (invoke "xmkmf")
1641 (substitute* "Makefile"
1642 ;; These imake variables somehow remain undefined
1643 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
1644 ;; Reset a few variable defaults that are set in imake templates
1645 ((imake) out)
1646 (("(MANPATH = )[[:graph:]]*" _ front)
1647 (string-append front out "/share/man")))
1648 ;; Old BSD-style 'union wait' is unneeded (defining
1649 ;; _USE_BSD did not seem to fix it)
1650 (substitute* "src/engine.c"
1651 (("union wait status") "int status = 0"))
1652 #t)))
1653 (add-after 'install 'install/man
1654 (lambda _
e61c2991 1655 (invoke "make" "install.man"))))))
1d752e43
MG
1656 (home-page "http://ibiblio.org/pub/Linux/X11/screensavers/")
1657 (synopsis "Program launcher for idle X sessions")
1658 (description "Xautolock monitors input devices under the X Window
1659System, and launches a program of your choice if there is no activity after
1660a user-configurable period of time.")
1661 (license license:gpl2)))
af1e3dfe
T
1662
1663(define-public screen-message
1664 (package
1665 (name "screen-message")
1666 (version "0.25")
1667 (source (origin
1668 (method url-fetch)
1669 (uri (string-append
1670 "https://www.joachim-breitner.de/archive/screen-message"
1671 "/screen-message-" version ".tar.gz"))
1672 (sha256
1673 (base32
1674 "1lw955qq5pq010lzmaf32ylj2iprgsri9ih4hx672c3f794ilab0"))))
1675 (build-system gnu-build-system)
1676 (inputs `(("gtk3" ,gtk+)
1677 ("gdk" ,gdk-pixbuf)
1678 ("pango" ,pango)))
1679 (native-inputs `(("pkg-config" ,pkg-config)))
1680 (arguments
1681 ;; The default configure puts the 'sm' binary in games/ instead of bin/ -
1682 ;; this fixes it:
1683 `(#:make-flags (list (string-append "execgamesdir=" %output "/bin"))))
1684 (synopsis "Print messages on your screen")
1685 (description "@code{screen-message} is a tool for displaying text on
1686your screen. It will make the text as large as possible and display it
1687with black color on a white background (colors are configurable on the
1688commandline).")
1689 (home-page "https://www.joachim-breitner.de/projects#screen-message")
1690 (license license:gpl2+)))
428adbc2
PN
1691
1692(define-public xss-lock
1693 ;; xss-lock does not seem to be maintained any longer, but the last commits
1694 ;; fix important issues so we package them.
1695 (let ((version "0.3.0")
1696 (revision "1")
1697 (commit "1e158fb20108058dbd62bd51d8e8c003c0a48717"))
1698 (package
1699 (name "xss-lock")
1700 (version (git-version version revision commit))
1701 (source (origin
1702 (method git-fetch)
1703 (uri (git-reference
1704 (url "https://bitbucket.org/raymonad/xss-lock.git")
1705 (commit commit)))
1706 (file-name (git-file-name name version))
1707 (sha256
1708 (base32
1709 "10hx7k7ga8g08akwz8qrsvj8iqr5nd4siiva6sjx789jvf0sak7r"))))
1710 (build-system cmake-build-system)
1711 (inputs `(("glib" ,glib)
1712 ("xcb-util" ,xcb-util)))
1713 (native-inputs
1714 `(("python-docutils" ,python-docutils)
1715 ("pkg-config" ,pkg-config)))
1716 (arguments
1717 `(#:tests? #f))
1718 (synopsis "Use external screen locker on events")
1719 (description "@code{xss-lock} listens to X signals to fire up a
1720user-defined screensaver. In effect this allows to automatically lock the
1721screen when closing a laptop lid or after a period of user inactivity (as set
1722with @code{xset s TIMEOUT}). The notifier command, if specified, is executed
1723first. Additionally, xss-lock uses the inhibition logic to lock the screen
1724before the system goes to sleep.")
1725 (home-page "https://bitbucket.org/raymonad/xss-lock")
1726 (license license:expat))))
19110787
EF
1727
1728(define-public python-pyperclip
1729 (package
1730 (name "python-pyperclip")
1731 (version "1.6.4")
1732 (source
1733 (origin
1734 (method url-fetch)
1735 (uri (pypi-uri "pyperclip" version))
1736 (sha256
1737 (base32
1738 "1p505c23ji06r28k1y67siihsbdzdf1brhlqpyv9ams4gk9863pp"))))
1739 (build-system python-build-system)
1740 (arguments
1741 '(#:tests? #f)) ; Not clear how to make tests pass.
1742 (inputs
1743 `(("xclip" ,xclip)
1744 ("xsel" ,xsel)))
1745 (home-page "https://github.com/asweigart/pyperclip")
1746 (synopsis "Python clipboard module")
1747 (description
1748 "Pyperclip is a clipboard module for Python, handling copy/pasting from
1749the X11 clipboard")
1750 (license license:bsd-3)))
90337891
PN
1751
1752(define-public numlockx
1753 (package
1754 (name "numlockx")
1755 (version "1.2")
1756 (source (origin
1757 (method git-fetch)
1758 (uri (git-reference
1759 ;; It seems that upstream is gone.
1760 (url "https://github.com/rg3/numlockx")
1761 (commit version)))
1762 (file-name (git-file-name name version))
1763 (sha256
1764 (base32
1765 "1w49fayhwzn5rx0z1q2lrvm7z8jrd34lgb89p853a024bixc3cf2"))))
1766 (build-system gnu-build-system)
1767 (inputs
1768 `(("xorg-server" ,xorg-server)))
1769 (home-page "https://github.com/rg3/numlockx")
1770 (synopsis "Turns on the numlock key in X11")
1771 (description "@command{numlockx} is a tiny program that lets you turn on
1772the numlock key in X11. It can be called from the user's initialization files
1773to automatically turn it on on login.")
1774 (license license:expat)))
67e0fb8b
RW
1775
1776(define-public xrandr-invert-colors
1777 (package
1778 (name "xrandr-invert-colors")
1779 (version "0.01")
1780 (source (origin
1781 (method git-fetch)
1782 (uri (git-reference
1783 (url "https://github.com/zoltanp/xrandr-invert-colors.git")
1784 (commit (string-append "v" version))))
1785 (file-name (git-file-name name version))
1786 (sha256
1787 (base32
1788 "1br3x9vr6xm4ika06n8cfxx1b3wdchdqvyzjl4y1chmivrml8x9h"))))
1789 (build-system gnu-build-system)
1790 (arguments
1791 `(#:make-flags (list "CC=gcc")
1792 #:tests? #f ; there are none
1793 #:phases
1794 (modify-phases %standard-phases
1795 (delete 'configure)
1796 (replace 'install
1797 (lambda* (#:key outputs #:allow-other-keys)
1798 (let* ((out (assoc-ref outputs "out"))
1799 (bin (string-append out "/bin")))
1800 (install-file "xrandr-invert-colors.bin" bin)
1801 #t))))))
1802 (inputs
1803 `(("libxrandr" ,libxrandr)))
1804 (home-page "https://github.com/zoltanp/xrandr-invert-colors")
1805 (synopsis "Invert display colors")
1806 (description "This package provides a small utility for inverting the
1807colors on all monitors attached to an XRandR-capable X11 display server.")
1808 (license license:gpl3+)))
d852cf9e
NN
1809
1810(define-public sct
1811 (package
1812 (name "sct")
1813 (version "0.4")
1814 (source
1815 (origin
1816 (method url-fetch)
1817 (uri
1818 (string-append "https://www.umaxx.net/dl/sct-"
1819 version ".tar.gz"))
1820 (sha256
1821 (base32
1822 "0r57z9ki8pvxhawfxys0v5h85z2x211sqxki0xvk1bga88ryldlv"))))
1823 (build-system gnu-build-system)
1824 (arguments
1825 '(#:make-flags (list "CC=gcc")
1826 #:tests? #f ; No tests exist.
1827 #:phases
1828 (modify-phases %standard-phases
1829 (delete 'configure)
1830 (add-after 'unpack 'fix-sctd-paths
1831 (lambda* (#:key outputs inputs #:allow-other-keys)
1832 (let ((out (assoc-ref outputs "out"))
1833 (coreutils (assoc-ref inputs "coreutils"))
1834 (inetutils (assoc-ref inputs "inetutils"))
1835 (sed (assoc-ref inputs "sed")))
1836 (substitute* "sctd.sh"
1837 (("\\$\\(which sct\\)") (string-append out "/bin/sct"))
1838 (("date") (string-append coreutils "/bin/date"))
1839 (("printf") (string-append coreutils "/bin/printf"))
1840 (("sleep") (string-append coreutils "/bin/sleep"))
1841 (("logger") (string-append inetutils "/bin/logger"))
1842 (("sed") (string-append sed "/bin/sed"))))))
1843 (replace 'install
1844 (lambda* (#:key outputs #:allow-other-keys)
1845 (let ((out (assoc-ref outputs "out")))
1846 (install-file "sct" (string-append out "/bin"))
1847 (install-file "sctd.sh" (string-append out "/bin"))
1848 (install-file "sct.1" (string-append out "/man/man1"))
1849 (install-file "sctd.1" (string-append out "/man/man1"))
1850 (rename-file (string-append out "/bin/sctd.sh")
1851 (string-append out "/bin/sctd"))
1852 #t))))))
1853 (inputs
1854 `(("coreutils" ,coreutils) ; sctd uses "date", "printf" and "sleep"
1855 ("inetutils" ,inetutils) ; sctd uses "logger"
1856 ("libxrandr" ,libxrandr)
1857 ("sed" ,sed))) ; sctd uses "sed"
1858 (home-page "https://www.umaxx.net")
1859 (synopsis "Set the color temperature of the screen")
1860 (description "@code{sct} is a lightweight utility to set the color
1861temperature of the screen.")
dbd346ae 1862 (license (license:non-copyleft "file://sct.c")))) ; "OpenBSD" license
95bf2fb6 1863
d2536ed1
JK
1864(define-public xsecurelock
1865 (package
1866 (name "xsecurelock")
1867 (version "1.6.0")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append
1871 "https://github.com/google/xsecurelock/releases"
1872 "/download/v" version "/xsecurelock-" version ".tar.gz"))
1873 (sha256
1874 (base32 "070gknyv0s5hz9hkc6v73m2v7ssyjwgl93b5hd4glayfqxqjbmdp"))))
1875 (build-system gnu-build-system)
1876 (arguments
1877 '(#:configure-flags
1878 '("--with-pam-service-name=login"
1879 "--with-xkb"
1880 "--with-default-authproto-module=/run/setuid-programs/authproto_pam")))
1881 (native-inputs
1882 `(("pandoc" ,ghc-pandoc)
1883 ("pkg-config" ,pkg-config)))
1884 (inputs
1885 `(("fontconfig" ,fontconfig)
1886 ("libX11" ,libx11)
1887 ("libxcomposite" ,libxcomposite)
1888 ("libxext" ,libxext)
1889 ("libxfixes" ,libxfixes)
1890 ("libxft" ,libxft)
1891 ("libxmu" ,libxmu)
1892 ("libxrandr" ,libxrandr)
1893 ("libxscrnsaver" ,libxscrnsaver)
1894 ("linux-pam" ,linux-pam)))
1895 (home-page "https://github.com/google/xsecurelock")
1896 (synopsis "X11 screen lock utility with the primary goal of security")
1897 (description "@code{xsecurelock} is an X11 screen locker which uses
1898