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