packages: Allow package lookups with version prefixes.
[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>
11447a79 5;;; Copyright © 2014, 2015 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>
3c156c8a
JD
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages xdisorg)
26 #:use-module ((guix licenses) #:prefix license:)
27 #:use-module (guix packages)
28 #:use-module (guix download)
18ad5bff 29 #:use-module (guix utils)
3c156c8a
JD
30 #:use-module (guix build-system gnu)
31 #:use-module (gnu packages)
32 #:use-module (gnu packages compression)
33 #:use-module (gnu packages image)
34 #:use-module (gnu packages pkg-config)
2e88e089 35 #:use-module (gnu packages glib)
de51bf58 36 #:use-module (gnu packages perl)
ab69d9ac 37 #:use-module (gnu packages linux)
76212b57 38 #:use-module (gnu packages guile)
3c156c8a
JD
39 #:use-module (gnu packages xorg))
40
3c156c8a
JD
41;; packages outside the x.org system proper
42
de878f1b
JD
43(define-public xclip
44 (package
45 (name "xclip")
46 (version "0.12")
47 (source
48 (origin
49 (method url-fetch)
50 (uri (string-append
51 "mirror://sourceforge/" name "/" name "-" version ".tar.gz"))
52 (sha256
53 (base32
54 "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
55 (build-system gnu-build-system)
56 (arguments
57 '(#:tests? #f)) ; There is no test suite
58 (inputs `(("libxmu" ,libxmu)
59 ("libxt" ,libxt)))
60 (home-page "http://xclip.sourceforge.net/")
61 (synopsis "Command line interface to X11 clipboard")
62 (description "Xclip is a command line interface to the X11 clipboard. It
63can also be used for copying files, as an alternative to sftp/scp, thus
64avoiding password prompts when X11 forwarding has already been setup.")
65 (license license:gpl2+)))
66
de51bf58
JD
67(define-public xdotool
68 (package
69 (name "xdotool")
70 (version "2.20110530.1")
71 (source
72 (origin
73 (method url-fetch)
74 (uri (string-append
75 "http://semicomplete.googlecode.com/files/" name "-"
76 version ".tar.gz"))
77 (sha256
78 (base32
79 "0rxggg1cy7nnkwidx8x2w3c5f3pk6dh2b6q0q7hp069r3n5jrd77"))))
80 (build-system gnu-build-system)
81 (arguments
82 '(#:tests? #f ; Test suite requires a lot of black magic
ca0d2a63
AG
83 #:phases
84 (alist-replace 'configure
de51bf58
JD
85 (lambda* (#:key outputs #:allow-other-keys #:rest args)
86 (setenv "PREFIX" (assoc-ref outputs "out"))
87 (setenv "LDFLAGS" (string-append "-Wl,-rpath="
88 (assoc-ref
89 %outputs "out") "/lib"))
90 (setenv "CC" "gcc"))
91 %standard-phases)))
92 (native-inputs `(("perl" ,perl))) ; for pod2man
93 (inputs `(("libx11" ,libx11)
94 ("libxext" ,libxext)
95 ("libxi" ,libxi)
96 ("libxinerama" ,libxinerama)
97 ("libxtst" ,libxtst)))
98 (home-page "http://www.semicomplete.com/projects/xdotool")
99 (synopsis "Fake keyboard/mouse input, window management, and more")
100 (description "Xdotool lets you simulate keyboard input and mouse activity,
101move and resize windows, etc. It does this using X11's XTEST extension and
102other Xlib functions. Additionally, you can search for windows and move,
103resize, hide, and modify window properties like the title. If your window
104manager supports it, you can use xdotool to switch desktops, move windows
105between desktops, and change the number of desktops.")
106 (license license:bsd-3)))
107
3c156c8a
JD
108(define-public xeyes
109 (package
110 (name "xeyes")
111 (version "1.0.1")
112 (source
113 (origin
114 (method url-fetch)
115 (uri (string-append
116 "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
117 version
118 ".orig.tar.gz"))
119 (sha256
120 (base32
121 "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
122 (build-system gnu-build-system)
123 (inputs
124 `(("libxext" ,libxext)
125 ("libxmu" ,libxmu)
126 ("libxt" ,libxt)))
127 (native-inputs
128 `(("pkg-config" ,pkg-config)))
129 (home-page "http://xeyes.sourcearchive.com/")
130 (synopsis "Follow-the-mouse X demo")
131 (description "Xeyes is a demo program for x.org. It shows eyes
132following the mouse.")
133 (license license:x11)))
134
135
136(define-public pixman
137 (package
138 (name "pixman")
daf47d43 139 (version "0.32.6")
3c156c8a
JD
140 (source
141 (origin
142 (method url-fetch)
143 (uri (string-append
144 "http://cairographics.org/releases/pixman-"
145 version
146 ".tar.gz"))
147 (sha256
148 (base32
daf47d43 149 "0129g4zdrw5hif5783li7rzcr4vpbc2cfia91azxmsk0h0xx3zix"))))
3c156c8a
JD
150 (build-system gnu-build-system)
151 (inputs
152 `(("libpng" ,libpng)
153 ("zlib" ,zlib)))
154 (native-inputs
155 `(("pkg-config" ,pkg-config)))
156 (home-page "http://www.pixman.org/")
157 (synopsis "Low-level pixel manipulation library")
158 (description "Pixman is a low-level software library for pixel
159manipulation, providing features such as image compositing and trapezoid
160rasterisation.")
161 (license license:x11)))
162
163
164(define-public libdrm
165 (package
166 (name "libdrm")
31157f8e 167 (version "2.4.58")
3c156c8a
JD
168 (source
169 (origin
170 (method url-fetch)
171 (uri (string-append
172 "http://dri.freedesktop.org/libdrm/libdrm-"
173 version
174 ".tar.bz2"))
175 (sha256
176 (base32
31157f8e 177 "1pb5lfb3kh36p9axq620daclq68rqb3mhzxpz0pb18y9p7kglmdi"))))
3c156c8a
JD
178 (build-system gnu-build-system)
179 (inputs
180 `(("libpciaccess" ,libpciaccess)
181 ("libpthread-stubs" ,libpthread-stubs)))
182 (native-inputs
183 `(("pkg-config" ,pkg-config)))
184 (home-page "http://dri.freedesktop.org/wiki/")
185 (synopsis "Direct rendering userspace library")
186 (description "The Direct Rendering Infrastructure, also known as the DRI,
187is a framework for allowing direct access to graphics hardware under the
188X Window System in a safe and efficient manner. It includes changes to the
189X server, to several client libraries, and to the kernel (DRM, Direct
190Rendering Manager). The most important use for the DRI is to create fast
191OpenGL implementations providing hardware acceleration for Mesa.
192Several 3D accelerated drivers have been written to the DRI specification,
193including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
194and Matrox.")
195 (license license:x11)))
196
197
3c156c8a
JD
198(define-public mtdev
199 (package
200 (name "mtdev")
201 (version "1.1.3")
202 (source
203 (origin
204 (method url-fetch)
205 (uri (string-append
206 "http://bitmath.org/code/mtdev/mtdev-"
207 version ".tar.bz2"))
208 (sha256
209 (base32
210 "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d"))))
211 (build-system gnu-build-system)
212 (home-page "http://bitmath.org/code/mtdev/")
213 (synopsis "Multitouch protocol translation library")
214 (description "Mtdev is a stand-alone library which transforms all
215variants of kernel MT events to the slotted type B protocol. The events
216put into mtdev may be from any MT device, specifically type A without
217contact tracking, type A with contact tracking, or type B with contact
218tracking.")
219 (license license:x11)))
a693bba1
SB
220
221(define-public startup-notification
222 (package
223 (name "startup-notification")
224 (version "0.12")
225 (source
226 (origin
227 (method url-fetch)
228 (uri (string-append "http://www.freedesktop.org/software/" name
229 "/releases/" name "-" version ".tar.gz"))
230 (sha256
231 (base32
232 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
233 (build-system gnu-build-system)
234 (native-inputs `(("pkg-config" ,pkg-config)))
235 (inputs
236 `(("libx11" ,libx11)
237 ("xcb-util" ,xcb-util)))
238 (home-page "http://www.freedesktop.org/wiki/Software/startup-notification/")
239 (synopsis "Application startup notification and feedback library")
240 (description
241 "Startup-notification contains a reference implementation of the startup
242notification protocol. The reference implementation is mostly under an X Window
243System style license, and has no special dependencies.")
244 ;; Most of the code is provided under x11 license.
245 (license license:lgpl2.0+)))
2e88e089
AK
246
247(define-public wmctrl
248 (package
249 (name "wmctrl")
250 (version "1.07")
251 (source (origin
252 (method url-fetch)
253 (uri (string-append
254 "http://tomas.styblo.name/wmctrl/dist/wmctrl-"
255 version ".tar.gz"))
256 (sha256
257 (base32
258 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
259 (patches (list (search-patch "wmctrl-64-fix.patch")))))
260 (build-system gnu-build-system)
261 (arguments
262 '(#:configure-flags
263 (list (string-append "--mandir="
264 (assoc-ref %outputs "out")
265 "/share/man"))))
266 (native-inputs
267 `(("pkg-config" ,pkg-config)))
268 (inputs
269 `(("libx11" ,libx11)
270 ("libxmu" ,libxmu)
271 ("glib" ,glib)))
272 (home-page "http://tomas.styblo.name/wmctrl/")
273 (synopsis "Command-line tool to control X window managers")
274 (description
275 "Wmctrl allows to interact with an X window manager that is compatible
276with the EWMH/NetWM specification. It can query the window manager for
277information, and request for certain window management actions (resize and
278move windows, switch between desktops, etc.)")
279 (license license:gpl2+)))
1410f342
AK
280
281(define-public scrot
282 (package
283 (name "scrot")
284 (version "0.8")
285 (source (origin
286 (method url-fetch)
287 (uri (string-append
288 "http://linuxbrit.co.uk/downloads/scrot-"
289 version ".tar.gz"))
290 (sha256
291 (base32
292 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
293 (build-system gnu-build-system)
294 (arguments
295 ;; By default, man and doc are put in PREFIX/{man,doc} instead of
296 ;; PREFIX/share/{man,doc}.
297 '(#:configure-flags
298 (list (string-append "--mandir="
299 (assoc-ref %outputs "out")
300 "/share/man"))
301 #:phases (alist-replace
302 'install
303 (lambda* (#:key inputs outputs #:allow-other-keys)
304 (let* ((out (assoc-ref outputs "out"))
305 (doc (string-append out "/share/doc/scrot")))
306 (mkdir-p doc)
307 (zero?
308 (system* "make" "install"
309 (string-append "docsdir=" doc)))))
310 %standard-phases)))
311 (inputs
312 `(("libx11" ,libx11)
313 ("giblib" ,giblib)))
314 (home-page "http://linuxbrit.co.uk/software/")
315 (synopsis "Command-line screen capture utility for X Window System")
316 (description
317 "Scrot allows to save a screenshot of a full screen, a window or a part
318of the screen selected by mouse.")
319 ;; This license removes a clause about X Consortium from the original
320 ;; X11 license.
321 (license (license:x11-style "file://COPYING"
322 "See 'COPYING' in the distribution."))))
4a01b30b
AK
323
324(define-public unclutter
325 (package
326 (name "unclutter")
327 (version "8")
328 (source (origin
329 (method url-fetch)
330 (uri (string-append
331 "http://ftp.x.org/contrib/utilities/unclutter-"
332 version ".tar.Z"))
333 (sha256
334 (base32
335 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
336 (build-system gnu-build-system)
337 (arguments
338 '(#:tests? #f ; no check target
339 #:phases (alist-delete
340 'configure
341 (alist-replace
342 'install
343 (lambda* (#:key inputs outputs #:allow-other-keys)
344 (let* ((out (assoc-ref outputs "out"))
345 (bin (string-append out "/bin"))
346 (man1 (string-append out "/share/man/man1")))
347 (mkdir-p bin)
348 (mkdir-p man1)
349 (zero?
350 (system* "make" "install" "install.man"
351 (string-append "BINDIR=" bin)
352 (string-append "MANDIR=" man1)))))
353 %standard-phases))))
354 (inputs `(("libx11" ,libx11)))
355 (home-page "http://ftp.x.org/contrib/utilities/")
356 (synopsis "Hide idle mouse cursor")
357 (description
358 "Unclutter is a program which runs permanently in the background of an
359X11 session. It checks on the X11 pointer (cursor) position every few
360seconds, and when it finds it has not moved (and no buttons are pressed
361on the mouse, and the cursor is not in the root window) it creates a
362small sub-window as a child of the window the cursor is in. The new
363window installs a cursor of size 1x1 but a mask of all 0, i.e. an
364invisible cursor. This allows you to see all the text in an xterm or
365xedit, for example. The human factors crowd would agree it should make
366things less distracting.")
367 (license license:public-domain)))
ab69d9ac
LC
368
369(define-public xlockmore
370 (package
371 (name "xlockmore")
372 (version "5.45")
373 (source (origin
374 (method url-fetch)
375 (uri (string-append "http://www.tux.org/~bagleyd/xlock/xlockmore-"
376 version "/xlockmore-" version ".tar.bz2"))
377 (sha256
378 (base32
379 "1xqm61bbfn5q056w57vp16gvai8nqpcw570ysxlm5h46nh6ai0bz"))))
380 (build-system gnu-build-system)
381 (arguments
382 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
383 (assoc-ref %outputs "out")
384 "/lib/X11/app-defaults"))
385 #:tests? #f)) ;no such thing as a test suite
386 (inputs
387 `(("libX11" ,libx11)
388 ("libXext" ,libxext)
389 ("libXt" ,libxt)
390 ("linux-pam" ,linux-pam)))
391 (home-page "http://www.tux.org/~bagleyd/xlockmore.html")
392 (synopsis "Screen locker for the X Window System")
393 (description
394 "XLockMore is a classic screen locker and screen saver for the
395X Window System.")
166191b3 396 (license (license:non-copyleft #f "See xlock.c.")
ab69d9ac
LC
397 ;; + GPLv2 in modes/glx/biof.c.
398 )))
11447a79
AK
399
400(define-public xosd
401 (package
402 (name "xosd")
403 (version "2.2.14")
404 (source (origin
405 (method url-fetch)
406 (uri (string-append
407 "mirror://sourceforge/libxosd/xosd-"
408 version ".tar.gz"))
409 (sha256
410 (base32
411 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
412 (build-system gnu-build-system)
413 (arguments
414 '(#:configure-flags
415 (list (string-append "--mandir=" %output "/share/man"))))
416 (inputs
417 `(("libx11" ,libx11)
418 ("libxt" ,libxt)
419 ("libxext" ,libxext)
420 ("libxinerama" ,libxinerama)))
421 (home-page "http://sourceforge.net/projects/libxosd/")
422 (synopsis "X On Screen Display")
423 (description
424 "XOSD provides a C library and a simple utility (osd_cat) for displaying
425transparent text on your screen.")
426 (license license:gpl2+)))
76212b57
ML
427
428(define-public xbindkeys
429 (package
430 (name "xbindkeys")
431 (version "1.8.6")
432 (source (origin
433 (method url-fetch)
434 ;; Download from the savannah mirror list fails
435 (uri (string-append
436 "http://www.nongnu.org/xbindkeys/xbindkeys-"
437 version
438 ".tar.gz"))
439 (sha256
440 (base32
441 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
442 (build-system gnu-build-system)
443 (inputs
444 `(("libx11" ,libx11)
445 ("guile" ,guile-2.0)))
18ad5bff
MW
446 (arguments `(#:configure-flags
447 '(;; FIXME: xbindkeys-1.8.6's config.guess fails on mips64el.
448 ,@(if (%current-target-system)
449 '()
450 (let ((triplet
451 (nix-system->gnu-triplet (%current-system))))
452 (list (string-append "--build=" triplet)))))))
76212b57
ML
453 (home-page "http://www.nongnu.org/xbindkeys/")
454 (synopsis "Associate a combination of keys with a shell command")
455 (description
456 "XBindKeys is a program that allows you to launch shell commands with
457your keyboard or your mouse under the X Window System. It links commands to
458keys or mouse buttons, using a configuration file. It's independent of the
459window manager and can capture all keyboard keys (ex: Power, Wake...). It
460optionally supports a Guile-based configuration file layout, which enables you
461to access all XBindKeys internals, so you can have key combinations, double
462clicks or timed double clicks take actions. Also all functions that work in
463Guile will work for XBindKeys.")
464 (license license:gpl2+)))
42f2c2b9
AG
465
466(define-public rxvt-unicode
467 (package
468 (name "rxvt-unicode")
469 (version "9.21")
470 (source
471 (origin
472 (method url-fetch)
473 (uri (string-append
474 "http://dist.schmorp.de/rxvt-unicode/"
475 name "-"
476 version
477 ".tar.bz2"))
478 (sha256
479 (base32
480 "0swmi308v5yxsddrdhvi4cch88k2bbs2nffpl5j5m2f55gbhw9vm"))))
481 (build-system gnu-build-system)
482 (inputs
483 `(("libXft" ,libxft)
484 ("libX11" ,libx11)))
485 (native-inputs
486 `(("perl" ,perl)
487 ("pkg-config" ,pkg-config)))
488 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
489 (synopsis "Rxvt clone with XFT and unicode support")
490 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
491intended as an xterm replacement for users who do not require features such as
492Tektronix 4014 emulation and toolkit-style configurability. It supports
493unicode, XFT and may be extended with Perl plugins. It also comes with a
494client/daemon pair that lets you open any number of terminal windows from
495within a single process.")
496 (license license:gpl3+)))
ca0d2a63
AG
497
498(define-public xcape
499 (package
500 (name "xcape")
501 (version "1.1")
502 (source
503 (origin
504 (method url-fetch)
505 (uri (string-append "https://github.com/alols/" name
506 "/archive/v" version ".tar.gz"))
507 (file-name (string-append name "-" version ".tar.gz"))
508 (sha256
509 (base32
510 "0jkdiaxc6sryrbibdgi2y1c48n4l9xyazhxr16l6h4ibddx95bk9"))))
511 (build-system gnu-build-system)
512 (arguments
513 `(#:tests? #f ; no check target
514 #:phases (alist-delete 'configure %standard-phases) ; no configure script
515 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
516 "MANDIR=/share/man/man1"
517 "CC=gcc")))
518 (inputs
519 `(("libxtst" ,libxtst)
520 ("libx11" ,libx11)))
521 (native-inputs
522 `(("pkg-config" ,pkg-config)))
523 (home-page "http://github.com/alols/xcape")
524 (synopsis "Use a modifier key in X.org as another key")
525 (description
526 "This utility for X.org allows to use modifier key as another key when
527pressed and released on its own. The default behaviour is to generate the
528Escape key when Left Control is pressed and released on its own.")
529 (license license:gpl3+)))