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