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