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