doc: Describe how to make X server find TrueType fonts.
[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>
18ad5bff 3;;; Copyright © 2014, 2015 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>
ab69d9ac 6;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
76212b57 7;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.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>
b951e26f 13;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
e4ddf924 14;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
71ca0539 15;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
3c156c8a
JD
16;;;
17;;; This file is part of GNU Guix.
18;;;
19;;; GNU Guix is free software; you can redistribute it and/or modify it
20;;; under the terms of the GNU General Public License as published by
21;;; the Free Software Foundation; either version 3 of the License, or (at
22;;; your option) any later version.
23;;;
24;;; GNU Guix is distributed in the hope that it will be useful, but
25;;; WITHOUT ANY WARRANTY; without even the implied warranty of
26;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27;;; GNU General Public License for more details.
28;;;
29;;; You should have received a copy of the GNU General Public License
30;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
31
32(define-module (gnu packages xdisorg)
33 #:use-module ((guix licenses) #:prefix license:)
34 #:use-module (guix packages)
35 #:use-module (guix download)
18ad5bff 36 #:use-module (guix utils)
9f1d33be 37 #:use-module (guix build-system cmake)
3c156c8a 38 #:use-module (guix build-system gnu)
f1f7049e 39 #:use-module (guix build-system glib-or-gtk)
ae05b185 40 #:use-module (guix build-system python)
3c156c8a 41 #:use-module (gnu packages)
99828fa7 42 #:use-module (gnu packages documentation)
b4c400a7 43 #:use-module (gnu packages algebra)
3c156c8a
JD
44 #:use-module (gnu packages compression)
45 #:use-module (gnu packages image)
46 #:use-module (gnu packages pkg-config)
ae05b185 47 #:use-module (gnu packages gettext)
9f1d33be 48 #:use-module (gnu packages gl)
2e88e089 49 #:use-module (gnu packages glib)
b9cbe316 50 #:use-module (gnu packages gnome) ;for libgudev
1ef3f91a 51 #:use-module (gnu packages ncurses)
de51bf58 52 #:use-module (gnu packages perl)
ae05b185 53 #:use-module (gnu packages python)
ab69d9ac 54 #:use-module (gnu packages linux)
b4c400a7 55 #:use-module (gnu packages gl)
76212b57 56 #:use-module (gnu packages guile)
f1f7049e
AW
57 #:use-module (gnu packages xml)
58 #:use-module (gnu packages gtk)
cf60e76a
DM
59 #:use-module (gnu packages xorg)
60 #:use-module (gnu packages bison))
3c156c8a 61
3c156c8a
JD
62;; packages outside the x.org system proper
63
ae05b185
ML
64(define-public arandr
65 (package
66 (name "arandr")
16d8f9be 67 (version "0.1.9")
ae05b185
ML
68 (source (origin
69 (method url-fetch)
70 (uri (string-append "http://christian.amsuess.com/tools/" name
71 "/files/" name "-" version ".tar.gz"))
72 (sha256
73 (base32
16d8f9be 74 "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))))
ae05b185 75 (build-system python-build-system)
b951e26f
RW
76 (arguments
77 `(#:python ,python-2 ;incompatible with python 3
78 #:tests? #f ;no tests
79 #:phases
80 (modify-phases %standard-phases
81 (add-after 'install 'make-xrandr-available
82 (lambda* (#:key inputs outputs #:allow-other-keys)
83 (wrap-program (string-append (assoc-ref outputs "out")
84 "/bin/arandr")
85 `("PATH" ":" prefix (,(string-append (assoc-ref inputs "xrandr")
86 "/bin"))))
87 #t)))))
88 (inputs `(("pygtk" ,python2-pygtk)
89 ("xrandr" ,xrandr)))
ae05b185
ML
90 (native-inputs `(("gettext" ,gnu-gettext)
91 ("python-docutils" ,python2-docutils)
92 ("python-setuptools" ,python2-setuptools)))
93 (home-page "https://christian.amsuess.com/tools/arandr/")
94 (synopsis "Another RandR graphical user interface")
95 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
96 (description "ARandR is designed to provide a simple visual front end for
97the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
98shown graphically and can be changed in a drag-and-drop way. Configurations
99are saved as executable shell scripts which can be loaded without using this
100program.")
101 (license license:gpl3+)))
102
de878f1b
JD
103(define-public xclip
104 (package
105 (name "xclip")
106 (version "0.12")
107 (source
108 (origin
109 (method url-fetch)
110 (uri (string-append
de67e922
LF
111 "mirror://sourceforge/" name "/" name "/" version "/"
112 name "-" version ".tar.gz"))
de878f1b
JD
113 (sha256
114 (base32
115 "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
116 (build-system gnu-build-system)
117 (arguments
118 '(#:tests? #f)) ; There is no test suite
119 (inputs `(("libxmu" ,libxmu)
120 ("libxt" ,libxt)))
121 (home-page "http://xclip.sourceforge.net/")
122 (synopsis "Command line interface to X11 clipboard")
123 (description "Xclip is a command line interface to the X11 clipboard. It
124can also be used for copying files, as an alternative to sftp/scp, thus
125avoiding password prompts when X11 forwarding has already been setup.")
126 (license license:gpl2+)))
127
cf60e76a
DM
128(define-public libxkbcommon
129 (package
130 (name "libxkbcommon")
af2b0b15 131 (version "0.6.1")
cf60e76a
DM
132 (source (origin
133 (method url-fetch)
134 (uri (string-append "http://xkbcommon.org/download/" name "-"
135 version ".tar.xz"))
136 (sha256
137 (base32
af2b0b15 138 "0q47xa1szlxwgvwmhv4b7xwawnykz1hnc431d84nj8dlh2q8f22v"))))
cf60e76a
DM
139 (build-system gnu-build-system)
140 (inputs
141 `(("libx11" ,libx11)
142 ("libxcb" ,libxcb)
143 ("xkeyboard-config" ,xkeyboard-config)))
144 (native-inputs
145 `(("bison" ,bison)
146 ("pkg-config" ,pkg-config)))
147 (arguments
148 `(#:configure-flags
149 (list (string-append "--with-xkb-config-root="
150 (assoc-ref %build-inputs "xkeyboard-config")
151 "/share/X11/xkb")
152 (string-append "--with-x-locale-root="
153 (assoc-ref %build-inputs "libx11")
154 "/share/X11/locale"))))
155 (home-page "http://xkbcommon.org/")
156 (synopsis "Library to handle keyboard descriptions")
157 (description "Xkbcommon is a library to handle keyboard descriptions,
158including loading them from disk, parsing them and handling their
159state. It is mainly meant for client toolkits, window systems, and other
160system applications; currently that includes Wayland, kmscon, GTK+, Qt,
161Clutter, and more. Despite the name, it is not currently used by anything
162X11 (yet).")
163 (license (license:x11-style "file://COPYING"
164 "See 'COPYING' in the distribution."))))
165
de51bf58
JD
166(define-public xdotool
167 (package
168 (name "xdotool")
6f74aecd 169 (version "3.20150503.1")
de51bf58
JD
170 (source
171 (origin
172 (method url-fetch)
173 (uri (string-append
6f74aecd
CAW
174 "https://github.com/jordansissel/xdotool/releases/download/v"
175 version "/xdotool-" version ".tar.gz"))
de51bf58
JD
176 (sha256
177 (base32
6f74aecd 178 "1lcngsw33fy9my21rdiz1gs474bfdqcfxjrnfggbx4aypn1nhcp8"))
fc1adab1 179 (patches (search-patches "xdotool-fix-makefile.patch"))))
de51bf58
JD
180 (build-system gnu-build-system)
181 (arguments
182 '(#:tests? #f ; Test suite requires a lot of black magic
ca0d2a63
AG
183 #:phases
184 (alist-replace 'configure
de51bf58
JD
185 (lambda* (#:key outputs #:allow-other-keys #:rest args)
186 (setenv "PREFIX" (assoc-ref outputs "out"))
187 (setenv "LDFLAGS" (string-append "-Wl,-rpath="
188 (assoc-ref
189 %outputs "out") "/lib"))
190 (setenv "CC" "gcc"))
191 %standard-phases)))
192 (native-inputs `(("perl" ,perl))) ; for pod2man
193 (inputs `(("libx11" ,libx11)
194 ("libxext" ,libxext)
195 ("libxi" ,libxi)
196 ("libxinerama" ,libxinerama)
6f74aecd
CAW
197 ("libxtst" ,libxtst)
198 ("libxkbcommon" ,libxkbcommon)))
de51bf58
JD
199 (home-page "http://www.semicomplete.com/projects/xdotool")
200 (synopsis "Fake keyboard/mouse input, window management, and more")
201 (description "Xdotool lets you simulate keyboard input and mouse activity,
202move and resize windows, etc. It does this using X11's XTEST extension and
203other Xlib functions. Additionally, you can search for windows and move,
204resize, hide, and modify window properties like the title. If your window
205manager supports it, you can use xdotool to switch desktops, move windows
206between desktops, and change the number of desktops.")
207 (license license:bsd-3)))
208
3c156c8a
JD
209(define-public xeyes
210 (package
211 (name "xeyes")
212 (version "1.0.1")
213 (source
214 (origin
215 (method url-fetch)
216 (uri (string-append
217 "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
218 version
219 ".orig.tar.gz"))
220 (sha256
221 (base32
222 "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
223 (build-system gnu-build-system)
224 (inputs
225 `(("libxext" ,libxext)
226 ("libxmu" ,libxmu)
227 ("libxt" ,libxt)))
228 (native-inputs
229 `(("pkg-config" ,pkg-config)))
230 (home-page "http://xeyes.sourcearchive.com/")
231 (synopsis "Follow-the-mouse X demo")
232 (description "Xeyes is a demo program for x.org. It shows eyes
233following the mouse.")
234 (license license:x11)))
235
236
237(define-public pixman
238 (package
239 (name "pixman")
6983ba56 240 (version "0.34.0")
997f86e9
LC
241 (source (origin
242 (method url-fetch)
243 (uri (string-append
244 "http://cairographics.org/releases/pixman-"
245 version ".tar.gz"))
246 (sha256
247 (base32
6983ba56 248 "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))))
3c156c8a
JD
249 (build-system gnu-build-system)
250 (inputs
997f86e9
LC
251 `(("libpng" ,libpng)
252 ("zlib" ,zlib)))
3c156c8a 253 (native-inputs
997f86e9 254 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
255 (home-page "http://www.pixman.org/")
256 (synopsis "Low-level pixel manipulation library")
257 (description "Pixman is a low-level software library for pixel
258manipulation, providing features such as image compositing and trapezoid
259rasterisation.")
260 (license license:x11)))
261
262
263(define-public libdrm
264 (package
265 (name "libdrm")
3b54548f 266 (version "2.4.65")
3c156c8a
JD
267 (source
268 (origin
269 (method url-fetch)
270 (uri (string-append
5cc3096c 271 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
272 version
273 ".tar.bz2"))
274 (sha256
275 (base32
b2aab72c 276 "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki"))
fc1adab1 277 (patches (search-patches "libdrm-symbol-check.patch"))))
3c156c8a
JD
278 (build-system gnu-build-system)
279 (inputs
280 `(("libpciaccess" ,libpciaccess)
281 ("libpthread-stubs" ,libpthread-stubs)))
282 (native-inputs
283 `(("pkg-config" ,pkg-config)))
284 (home-page "http://dri.freedesktop.org/wiki/")
285 (synopsis "Direct rendering userspace library")
286 (description "The Direct Rendering Infrastructure, also known as the DRI,
287is a framework for allowing direct access to graphics hardware under the
288X Window System in a safe and efficient manner. It includes changes to the
289X server, to several client libraries, and to the kernel (DRM, Direct
290Rendering Manager). The most important use for the DRI is to create fast
291OpenGL implementations providing hardware acceleration for Mesa.
292Several 3D accelerated drivers have been written to the DRI specification,
293including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
294and Matrox.")
295 (license license:x11)))
296
297
3c156c8a
JD
298(define-public mtdev
299 (package
300 (name "mtdev")
1f1e620f 301 (version "1.1.5")
3c156c8a
JD
302 (source
303 (origin
304 (method url-fetch)
305 (uri (string-append
306 "http://bitmath.org/code/mtdev/mtdev-"
307 version ".tar.bz2"))
308 (sha256
1f1e620f
EF
309 (base32
310 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
311 (build-system gnu-build-system)
312 (home-page "http://bitmath.org/code/mtdev/")
313 (synopsis "Multitouch protocol translation library")
314 (description "Mtdev is a stand-alone library which transforms all
315variants of kernel MT events to the slotted type B protocol. The events
316put into mtdev may be from any MT device, specifically type A without
317contact tracking, type A with contact tracking, or type B with contact
318tracking.")
319 (license license:x11)))
a693bba1
SB
320
321(define-public startup-notification
322 (package
323 (name "startup-notification")
324 (version "0.12")
325 (source
326 (origin
327 (method url-fetch)
5cc3096c 328 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
329 "/releases/" name "-" version ".tar.gz"))
330 (sha256
331 (base32
332 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
333 (build-system gnu-build-system)
334 (native-inputs `(("pkg-config" ,pkg-config)))
335 (inputs
336 `(("libx11" ,libx11)
337 ("xcb-util" ,xcb-util)))
338 (home-page "http://www.freedesktop.org/wiki/Software/startup-notification/")
339 (synopsis "Application startup notification and feedback library")
340 (description
341 "Startup-notification contains a reference implementation of the startup
342notification protocol. The reference implementation is mostly under an X Window
343System style license, and has no special dependencies.")
344 ;; Most of the code is provided under x11 license.
345 (license license:lgpl2.0+)))
2e88e089
AK
346
347(define-public wmctrl
348 (package
349 (name "wmctrl")
350 (version "1.07")
351 (source (origin
352 (method url-fetch)
353 (uri (string-append
d6420533 354 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
355 version ".tar.gz"))
356 (sha256
357 (base32
358 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 359 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
360 (build-system gnu-build-system)
361 (arguments
362 '(#:configure-flags
363 (list (string-append "--mandir="
364 (assoc-ref %outputs "out")
365 "/share/man"))))
366 (native-inputs
367 `(("pkg-config" ,pkg-config)))
368 (inputs
369 `(("libx11" ,libx11)
370 ("libxmu" ,libxmu)
371 ("glib" ,glib)))
372 (home-page "http://tomas.styblo.name/wmctrl/")
373 (synopsis "Command-line tool to control X window managers")
374 (description
375 "Wmctrl allows to interact with an X window manager that is compatible
376with the EWMH/NetWM specification. It can query the window manager for
377information, and request for certain window management actions (resize and
e881752c 378move windows, switch between desktops, etc.).")
2e88e089 379 (license license:gpl2+)))
1410f342
AK
380
381(define-public scrot
382 (package
383 (name "scrot")
384 (version "0.8")
385 (source (origin
386 (method url-fetch)
9da459f3
EF
387 (uri (list (string-append
388 "http://linuxbrit.co.uk/downloads/scrot-"
389 version ".tar.gz")
390 (string-append
391 "https://fossies.org/linux/privat/old/scrot-"
c5d15d41 392 version ".tar.gz")))
1410f342
AK
393 (sha256
394 (base32
395 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
396 (build-system gnu-build-system)
397 (arguments
398 ;; By default, man and doc are put in PREFIX/{man,doc} instead of
399 ;; PREFIX/share/{man,doc}.
400 '(#:configure-flags
401 (list (string-append "--mandir="
402 (assoc-ref %outputs "out")
403 "/share/man"))
d5047266
EF
404 #:phases
405 (modify-phases %standard-phases
406 (replace 'install
407 (lambda* (#:key inputs outputs #:allow-other-keys)
408 (let* ((out (assoc-ref outputs "out"))
409 (doc (string-append out "/share/doc/scrot")))
410 (mkdir-p doc)
411 (zero?
412 (system* "make" "install"
413 (string-append "docsdir=" doc)))))))))
1410f342
AK
414 (inputs
415 `(("libx11" ,libx11)
416 ("giblib" ,giblib)))
417 (home-page "http://linuxbrit.co.uk/software/")
418 (synopsis "Command-line screen capture utility for X Window System")
419 (description
420 "Scrot allows to save a screenshot of a full screen, a window or a part
421of the screen selected by mouse.")
422 ;; This license removes a clause about X Consortium from the original
423 ;; X11 license.
424 (license (license:x11-style "file://COPYING"
425 "See 'COPYING' in the distribution."))))
4a01b30b 426
9f1d33be
AK
427(define-public slop
428 (package
429 (name "slop")
430 (version "4.3.21")
431 (source (origin
432 (method url-fetch)
433 (uri (string-append
434 "https://github.com/naelstrof/slop/archive/v"
435 version ".tar.gz"))
436 (file-name (string-append name "-" version ".tar.gz"))
437 (sha256
438 (base32
439 "0z0p4a3p5mc6fjh5f8js9ppb0maxyvfxpiw2n6nqc5nim1kv6bim"))))
440 (build-system cmake-build-system)
441 (arguments '(#:tests? #f)) ; no "check" target
442 (inputs
443 `(("libx11" ,libx11)
444 ("libxrandr" ,libxrandr)
445 ("libxext" ,libxext)
446 ("imlib2" ,imlib2)
447 ("glew" ,glew)
448 ("mesa" ,mesa)))
449 (home-page "https://github.com/naelstrof/slop")
450 (synopsis "Select a region and print its bounds to stdout")
451 (description
452 "slop (Select Operation) is a tool that queries for a selection from a
453user and prints the region to stdout. It grabs the mouse and turns it into a
454crosshair, lets the user click and drag to make a selection (or click on a
455window) while drawing a pretty box around it, then finally prints the
456selection's dimensions to stdout.")
457 (license license:gpl3+)))
458
5c93de73
AK
459(define-public maim
460 (package
461 (name "maim")
462 (version "3.4.47")
463 (source (origin
464 (method url-fetch)
465 (uri (string-append
466 "https://github.com/naelstrof/maim/archive/v"
467 version ".tar.gz"))
468 (file-name (string-append name "-" version ".tar.gz"))
469 (sha256
470 (base32
471 "0kfp7k55bxc5h6h0wv8bwmsc5ny66h9ra2z4dzs4yzszq16544pv"))))
472 (build-system cmake-build-system)
473 (arguments
474 '(#:tests? #f ; no "check" target
475 #:phases
476 (modify-phases %standard-phases
477 (add-after 'unpack 'patch-source
478 (lambda* (#:key inputs #:allow-other-keys)
479 (let ((slop (string-append (assoc-ref inputs "slop")
480 "/bin/slop")))
481 ;; "slop" command is hardcoded in the source; replace it
482 ;; with the full file name.
483 (substitute* "src/main.cpp"
484 (("^( +slopcommand.*)\"slop\"" all front)
485 (string-append front "\"" slop "\"")))))))))
486 (inputs
487 `(("libx11" ,libx11)
488 ("libxrandr" ,libxrandr)
489 ("libxfixes" ,libxfixes)
490 ("imlib2" ,imlib2)
491 ("slop" ,slop)))
492 (home-page "https://github.com/naelstrof/maim")
493 (synopsis "Screenshot utility for X Window System")
494 (description
495 "maim (Make Image) is a tool that takes screenshots of your desktop and
496saves it in any format. Along with a full screen, it allows you to capture a
497predefined region or a particular window. Also, it makes it possible to
498include cursor in the resulting image.")
499 (license license:gpl3+)))
500
4a01b30b
AK
501(define-public unclutter
502 (package
503 (name "unclutter")
504 (version "8")
505 (source (origin
506 (method url-fetch)
507 (uri (string-append
508 "http://ftp.x.org/contrib/utilities/unclutter-"
509 version ".tar.Z"))
510 (sha256
511 (base32
512 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
513 (build-system gnu-build-system)
514 (arguments
515 '(#:tests? #f ; no check target
516 #:phases (alist-delete
517 'configure
518 (alist-replace
519 'install
520 (lambda* (#:key inputs outputs #:allow-other-keys)
521 (let* ((out (assoc-ref outputs "out"))
522 (bin (string-append out "/bin"))
523 (man1 (string-append out "/share/man/man1")))
524 (mkdir-p bin)
525 (mkdir-p man1)
526 (zero?
527 (system* "make" "install" "install.man"
528 (string-append "BINDIR=" bin)
529 (string-append "MANDIR=" man1)))))
530 %standard-phases))))
531 (inputs `(("libx11" ,libx11)))
532 (home-page "http://ftp.x.org/contrib/utilities/")
533 (synopsis "Hide idle mouse cursor")
534 (description
535 "Unclutter is a program which runs permanently in the background of an
536X11 session. It checks on the X11 pointer (cursor) position every few
537seconds, and when it finds it has not moved (and no buttons are pressed
538on the mouse, and the cursor is not in the root window) it creates a
539small sub-window as a child of the window the cursor is in. The new
540window installs a cursor of size 1x1 but a mask of all 0, i.e. an
541invisible cursor. This allows you to see all the text in an xterm or
542xedit, for example. The human factors crowd would agree it should make
543things less distracting.")
544 (license license:public-domain)))
ab69d9ac
LC
545
546(define-public xlockmore
547 (package
548 (name "xlockmore")
e4ddf924 549 (version "5.47")
ab69d9ac
LC
550 (source (origin
551 (method url-fetch)
20c04358
LF
552 (uri (list (string-append
553 "http://www.tux.org/~bagleyd/xlock/xlockmore-"
554 version ".tar.xz")
555 (string-append
556 "http://www.tux.org/~bagleyd/xlock/xlockmore-old"
557 "/xlockmore-" version
e4ddf924 558 "/xlockmore-" version ".tar.xz")))
ab69d9ac
LC
559 (sha256
560 (base32
e4ddf924 561 "138d79b8zc2hambbr9fnxp3fhihlcljgqns04zf0kv2f53pavqwl"))))
ab69d9ac
LC
562 (build-system gnu-build-system)
563 (arguments
564 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
565 (assoc-ref %outputs "out")
566 "/lib/X11/app-defaults"))
567 #:tests? #f)) ;no such thing as a test suite
568 (inputs
569 `(("libX11" ,libx11)
570 ("libXext" ,libxext)
571 ("libXt" ,libxt)
572 ("linux-pam" ,linux-pam)))
573 (home-page "http://www.tux.org/~bagleyd/xlockmore.html")
574 (synopsis "Screen locker for the X Window System")
575 (description
576 "XLockMore is a classic screen locker and screen saver for the
577X Window System.")
166191b3 578 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 579 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
580
581(define-public xosd
582 (package
583 (name "xosd")
584 (version "2.2.14")
585 (source (origin
586 (method url-fetch)
587 (uri (string-append
de67e922
LF
588 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
589 name "-" version ".tar.gz"))
11447a79
AK
590 (sha256
591 (base32
592 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
593 (build-system gnu-build-system)
594 (arguments
595 '(#:configure-flags
596 (list (string-append "--mandir=" %output "/share/man"))))
597 (inputs
598 `(("libx11" ,libx11)
599 ("libxt" ,libxt)
600 ("libxext" ,libxext)
601 ("libxinerama" ,libxinerama)))
602 (home-page "http://sourceforge.net/projects/libxosd/")
603 (synopsis "X On Screen Display")
604 (description
605 "XOSD provides a C library and a simple utility (osd_cat) for displaying
606transparent text on your screen.")
607 (license license:gpl2+)))
76212b57
ML
608
609(define-public xbindkeys
610 (package
611 (name "xbindkeys")
612 (version "1.8.6")
613 (source (origin
614 (method url-fetch)
615 ;; Download from the savannah mirror list fails
616 (uri (string-append
617 "http://www.nongnu.org/xbindkeys/xbindkeys-"
618 version
619 ".tar.gz"))
620 (sha256
621 (base32
622 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
623 (build-system gnu-build-system)
624 (inputs
625 `(("libx11" ,libx11)
626 ("guile" ,guile-2.0)))
627 (home-page "http://www.nongnu.org/xbindkeys/")
628 (synopsis "Associate a combination of keys with a shell command")
629 (description
630 "XBindKeys is a program that allows you to launch shell commands with
631your keyboard or your mouse under the X Window System. It links commands to
632keys or mouse buttons, using a configuration file. It's independent of the
633window manager and can capture all keyboard keys (ex: Power, Wake...). It
634optionally supports a Guile-based configuration file layout, which enables you
635to access all XBindKeys internals, so you can have key combinations, double
636clicks or timed double clicks take actions. Also all functions that work in
637Guile will work for XBindKeys.")
638 (license license:gpl2+)))
42f2c2b9 639
998b8c07 640(define-public sxhkd
641 (package
642 (name "sxhkd")
46cd684e 643 (version "0.5.6")
998b8c07 644 (source
645 (origin
646 (file-name (string-append name "-" version ".tar.gz"))
647 (method url-fetch)
648 (uri (string-append
649 "https://github.com/baskerville/sxhkd/archive/"
650 version ".tar.gz"))
651 (sha256
652 (base32
46cd684e 653 "15grmzpxz5fqlbfg2slj7gb7r6nzkvjmflmbkqx7mlby9pm6wdkj"))))
998b8c07 654 (build-system gnu-build-system)
655 (inputs
656 `(("asciidoc" ,asciidoc)
657 ("libxcb" ,libxcb)
658 ("xcb-util" ,xcb-util)
659 ("xcb-util-keysyms" ,xcb-util-keysyms)
660 ("xcb-util-wm" ,xcb-util-wm)))
661 (arguments
662 '(#:phases (alist-delete 'configure %standard-phases)
663 #:tests? #f ; no check target
664 #:make-flags (list "CC=gcc"
665 (string-append "PREFIX=" %output))))
666 (home-page "https://github.com/baskerville/sxhkd")
667 (synopsis "Simple X hotkey daemon")
668 (description "sxhkd is a simple X hotkey daemon with a powerful and
669compact configuration syntax.")
670 (license license:bsd-2)))
671
42f2c2b9
AG
672(define-public rxvt-unicode
673 (package
674 (name "rxvt-unicode")
71ca0539 675 (version "9.22")
1ef3f91a
ML
676 (source (origin
677 (method url-fetch)
63999415 678 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a
ML
679 name "-" version ".tar.bz2"))
680 (sha256
681 (base32
71ca0539 682 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 683 (build-system gnu-build-system)
1ef3f91a
ML
684 (arguments
685 ;; This sets the destination when installing the necessary terminal
686 ;; capability data, which are not provided by 'ncurses'. See
687 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
688 '(#:make-flags (list (string-append "TERMINFO="
689 (assoc-ref %outputs "out")
690 "/share/terminfo"))))
42f2c2b9
AG
691 (inputs
692 `(("libXft" ,libxft)
693 ("libX11" ,libx11)))
694 (native-inputs
1ef3f91a
ML
695 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
696 ("perl" ,perl)
42f2c2b9 697 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
698 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
699 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
700 (native-search-paths
701 (list (search-path-specification
702 (variable "TERMINFO_DIRS")
703 (files '("share/terminfo")))))
42f2c2b9
AG
704 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
705 (synopsis "Rxvt clone with XFT and unicode support")
706 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
707intended as an xterm replacement for users who do not require features such as
708Tektronix 4014 emulation and toolkit-style configurability. It supports
709unicode, XFT and may be extended with Perl plugins. It also comes with a
710client/daemon pair that lets you open any number of terminal windows from
711within a single process.")
712 (license license:gpl3+)))
ca0d2a63
AG
713
714(define-public xcape
715 (package
716 (name "xcape")
717 (version "1.1")
718 (source
719 (origin
720 (method url-fetch)
721 (uri (string-append "https://github.com/alols/" name
722 "/archive/v" version ".tar.gz"))
723 (file-name (string-append name "-" version ".tar.gz"))
724 (sha256
725 (base32
726 "0jkdiaxc6sryrbibdgi2y1c48n4l9xyazhxr16l6h4ibddx95bk9"))))
727 (build-system gnu-build-system)
728 (arguments
729 `(#:tests? #f ; no check target
730 #:phases (alist-delete 'configure %standard-phases) ; no configure script
731 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
732 "MANDIR=/share/man/man1"
733 "CC=gcc")))
734 (inputs
735 `(("libxtst" ,libxtst)
736 ("libx11" ,libx11)))
737 (native-inputs
738 `(("pkg-config" ,pkg-config)))
739 (home-page "http://github.com/alols/xcape")
740 (synopsis "Use a modifier key in X.org as another key")
741 (description
742 "This utility for X.org allows to use modifier key as another key when
743pressed and released on its own. The default behaviour is to generate the
744Escape key when Left Control is pressed and released on its own.")
745 (license license:gpl3+)))
f1f7049e
AW
746
747(define-public libwacom
748 (package
749 (name "libwacom")
750 (version "0.12")
751 (source (origin
752 (method url-fetch)
753 (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/"
754 name "-" version ".tar.bz2"))
755 (sha256
756 (base32
757 "022d0097dk2glgb6772zpcsqm1w42sbsbr3i72pdhzq6naqawys8"))))
758 (build-system glib-or-gtk-build-system)
759 (native-inputs
760 `(("pkg-config" ,pkg-config)))
761 (inputs
34efce4f 762 `(("gtk+" ,gtk+)
b9cbe316 763 ("libgudev" ,libgudev)
f1f7049e
AW
764 ("eudev" ,eudev)
765 ("libxml2" ,libxml2)))
34efce4f
AW
766 (propagated-inputs
767 ;; libwacom includes header files that include GLib, and libinput uses
768 ;; those header files.
769 `(("glib" ,glib)))
f1f7049e
AW
770 (home-page "http://linuxwacom.sourceforge.net/")
771 (synopsis "Helper library for Wacom tablet settings")
772 (description
34efce4f
AW
773 "Libwacom is a library to help implement Wacom tablet settings. It is
774intended to be used by client-programs that need model identification. It is
775already being used by the gnome-settings-daemon and the GNOME Control Center
776Wacom tablet applet.")
f1f7049e 777 (license license:x11)))
ab42a2a7
AW
778
779(define-public xf86-input-wacom
780 (package
781 (name "xf86-input-wacom")
782 (version "0.29.0")
783 (source (origin
784 (method url-fetch)
785 (uri (string-append
786 "mirror://sourceforge/linuxwacom/xf86-input-wacom/"
787 name "-" version ".tar.bz2"))
788 (sha256
789 (base32
790 "15lbzjkaf690i69qy0n0ibwczbclqq1nx0418c6a567by5v7wl48"))))
791 (arguments
792 `(#:configure-flags
793 (list (string-append "--with-sdkdir="
794 (assoc-ref %outputs "out")
795 "/include/xorg")
796 (string-append "--with-xorg-conf-dir="
797 (assoc-ref %outputs "out")
798 "/share/X11/xorg.conf.d"))))
799 (build-system gnu-build-system)
800 (native-inputs
801 `(("pkg-config" ,pkg-config)))
802 (inputs
803 `(("xorg-server" ,xorg-server)
804 ("libxrandr" ,libxrandr)
805 ("libxinerama" ,libxinerama)
806 ("libxi" ,libxi)
807 ("eudev" ,eudev)))
808 (home-page "http://linuxwacom.sourceforge.net/")
809 (synopsis "Wacom input driver for X")
810 (description
811 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
812the X.Org X Server version 1.7 and later (X11R7.5 or later).")
813 (license license:x11)))
6645753b
FPS
814
815(define-public redshift
816 (package
817 (name "redshift")
85a94d29 818 (version "1.11")
6645753b
FPS
819 (source
820 (origin
821 (method url-fetch)
822 (uri
823 (string-append "https://github.com/jonls/redshift/"
824 "releases/download/v" version
825 "/redshift-" version ".tar.xz"))
826 (sha256
827 (base32
85a94d29 828 "0ngkwj7rg8nfk806w0sg443w6wjr91xdc0zisqfm5h2i77wm1qqh"))))
6645753b
FPS
829 (build-system gnu-build-system)
830 (native-inputs
831 `(("pkg-config" ,pkg-config)
832 ("intltool" ,intltool)))
833 (inputs
834 `(("libdrm" ,libdrm)
835 ("libx11" ,libx11)
836 ("libxcb" ,libxcb)
b3546174 837 ("libxxf86vm" ,libxxf86vm)
b4c400a7 838 ("libjpeg" ,libjpeg)
6645753b
FPS
839 ("glib" ,glib))) ;for Geoclue2 support
840 (home-page "https://github.com/jonls/redshift")
841 (synopsis "Adjust the color temperature of your screen")
842 (description
843 "Redshift adjusts the color temperature according to the position of the
844sun. A different color temperature is set during night and daytime. During
845twilight and early morning, the color temperature transitions smoothly from
846night to daytime temperature to allow your eyes to slowly adapt. At night the
847color temperature should be set to match the lamps in your room.")
848 (license license:gpl3+)))
b4c400a7
CAW
849
850(define-public xscreensaver
851 (package
852 (name "xscreensaver")
34c553b0 853 (version "5.35")
b4c400a7
CAW
854 (source
855 (origin
856 (method url-fetch)
857 (uri
858 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
859 version ".tar.gz"))
860 (sha256
861 (base32
34c553b0 862 "08kbb0ry7ih436ab4i5g6lnhaaz13zkcdmbdibrn4j5gm5qq8v0y"))))
b4c400a7
CAW
863 (build-system gnu-build-system)
864 (arguments
865 `(#:tests? #f ; no check target
866 #:phases
867 (modify-phases %standard-phases
868 (add-before 'configure 'adjust-gtk-resource-paths
869 (lambda _
870 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
871 (("@GTK_DATADIR@") "@datadir@")
872 (("@PO_DATADIR@") "@datadir@")))))
873 #:configure-flags '("--with-pam" "--with-proc-interrupts"
874 "--without-readdisplay")
875 #:make-flags (list (string-append "AD_DIR="
876 (assoc-ref %outputs "out")
877 "/usr/lib/X11/app-defaults"))))
878 (native-inputs
879 `(("pkg-config" ,pkg-config)
880 ("intltool" ,intltool)))
881 (inputs
882 `(("libx11" ,libx11)
883 ("libxext" ,libxext)
884 ("libxi" ,libxi)
885 ("libxt" ,libxt)
886 ("libxft" ,libxft)
887 ("libxmu" ,libxmu)
888 ("libxpm" ,libxpm)
889 ("libglade" ,libglade)
890 ("libxml2" ,libxml2)
891 ("libsm" ,libsm)
892 ("libjpeg" ,libjpeg)
893 ("linux-pam" ,linux-pam)
894 ("pango" ,pango)
895 ("gtk+" ,gtk+)
896 ("perl" ,perl)
897 ("cairo" ,cairo)
898 ("bc" ,bc)
899 ("libxrandr" ,libxrandr)
900 ("glu" ,glu)
901 ("glib" ,glib)))
902 (home-page "https://www.jwz.org/xscreensaver/")
903 (synopsis "Classic screen saver suite supporting screen locking")
904 (description
905 "xscreensaver is a popular screen saver collection with many entertaining
906demos. It also acts as a nice screen locker.")
907 ;; xscreensaver doesn't have a single copyright file and instead relies on
908 ;; source comment headers, though most files have the same lax
909 ;; permissions. To reduce complexity, we're pointing at Debian's
910 ;; breakdown of the copyright information.
911 (license (license:non-copyleft
912 (string-append
913 "http://metadata.ftp-master.debian.org/changelogs/"
914 "/main/x/xscreensaver/xscreensaver_5.34-2_copyright")))))
f40dfcd0
DM
915
916(define-public rofi
917 (package
918 (name "rofi")
d5da7ee4 919 (version "1.1.0")
f40dfcd0
DM
920 (source (origin
921 (method url-fetch)
922 (uri (string-append "https://github.com/DaveDavenport/rofi/"
923 "releases/download/"
924 version "/rofi-" version ".tar.xz"))
925 (sha256
926 (base32
d5da7ee4 927 "1l8vl0mh7i0b1ycifqpg6392f5i4qxlv003m126skfk6fnlfq8hn"))))
f40dfcd0
DM
928 (build-system gnu-build-system)
929 (inputs
930 `(("libx11" ,libx11)
931 ("pango" ,pango)
932 ("cairo" ,cairo)
933 ("glib" ,glib)
934 ("startup-notification" ,startup-notification)
935 ("libxkbcommon" ,libxkbcommon)
936 ("libxcb" ,libxcb)
937 ("xcb-util" ,xcb-util)
938 ("xcb-util-wm" ,xcb-util-wm)))
939 (native-inputs
940 `(("pkg-config" ,pkg-config)))
941 (arguments
942 `(#:phases
943 (modify-phases %standard-phases
944 (add-before 'configure 'adjust-tests
945 (lambda _
946 (substitute* '("test/helper-expand.c")
947 (("~root") "/root")
948 (("~") "")
949 (("g_get_home_dir \\(\\)") "\"/\"")))))))
950 (home-page "https://davedavenport.github.io/rofi/")
951 (synopsis "Application Launcher")
952 (description "Rofi is a minimalist Application Launcher. It memorizes which
953applications you regularily use and also allows you to search for an application
954by name.")
955 (license license:expat)))