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