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