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