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