gnu: Add smu.
[jackhill/guix/guix.git] / gnu / packages / xdisorg.scm
CommitLineData
3c156c8a
JD
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
56ac2bf4 3;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
3c156c8a 4;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
9f1d33be 5;;; Copyright © 2014, 2015, 2016 Alex Kost <alezost@gmail.com>
04fa4cdf 6;;; Copyright © 2013, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
751f6871 7;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
42f2c2b9 8;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
f1f7049e 9;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
998b8c07 10;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
6645753b 11;;; Copyright © 2015 Florian Paul Schmidt <mista.tapas@gmx.net>
6f74aecd 12;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
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>
6cfd1a68 16;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
4493a3c2 17;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
01278f16 18;;; Copyright © 2016 Petter <petter@mykolab.ch>
37447422 19;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
33c93ea3 20;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
3c156c8a
JD
21;;;
22;;; This file is part of GNU Guix.
23;;;
24;;; GNU Guix is free software; you can redistribute it and/or modify it
25;;; under the terms of the GNU General Public License as published by
26;;; the Free Software Foundation; either version 3 of the License, or (at
27;;; your option) any later version.
28;;;
29;;; GNU Guix is distributed in the hope that it will be useful, but
30;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32;;; GNU General Public License for more details.
33;;;
34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37(define-module (gnu packages xdisorg)
38 #:use-module ((guix licenses) #:prefix license:)
39 #:use-module (guix packages)
40 #:use-module (guix download)
37447422 41 #:use-module (guix git-download)
18ad5bff 42 #:use-module (guix utils)
9f1d33be 43 #:use-module (guix build-system cmake)
3c156c8a 44 #:use-module (guix build-system gnu)
f1f7049e 45 #:use-module (guix build-system glib-or-gtk)
ae05b185 46 #:use-module (guix build-system python)
3c156c8a 47 #:use-module (gnu packages)
99828fa7 48 #:use-module (gnu packages documentation)
b4c400a7 49 #:use-module (gnu packages algebra)
3c156c8a
JD
50 #:use-module (gnu packages compression)
51 #:use-module (gnu packages image)
52 #:use-module (gnu packages pkg-config)
ae05b185 53 #:use-module (gnu packages gettext)
9f1d33be 54 #:use-module (gnu packages gl)
2e88e089 55 #:use-module (gnu packages glib)
751f6871 56 #:use-module (gnu packages gnome)
937b71df 57 #:use-module (gnu packages maths)
4493a3c2 58 #:use-module (gnu packages m4)
1ef3f91a 59 #:use-module (gnu packages ncurses)
de51bf58 60 #:use-module (gnu packages perl)
ae05b185 61 #:use-module (gnu packages python)
ab69d9ac 62 #:use-module (gnu packages linux)
b4c400a7 63 #:use-module (gnu packages gl)
76212b57 64 #:use-module (gnu packages guile)
f1f7049e
AW
65 #:use-module (gnu packages xml)
66 #:use-module (gnu packages gtk)
cf60e76a
DM
67 #:use-module (gnu packages xorg)
68 #:use-module (gnu packages bison))
3c156c8a 69
3c156c8a
JD
70;; packages outside the x.org system proper
71
ae05b185
ML
72(define-public arandr
73 (package
74 (name "arandr")
16d8f9be 75 (version "0.1.9")
ae05b185
ML
76 (source (origin
77 (method url-fetch)
78 (uri (string-append "http://christian.amsuess.com/tools/" name
79 "/files/" name "-" version ".tar.gz"))
80 (sha256
81 (base32
04fa4cdf
LC
82 "1i3f1agixxbfy4kxikb2b241p7c2lg73cl9wqfvlwz3q6zf5faxv"))
83 (modules '((guix build utils)))
84 (snippet
85 ;; Do not record a timestamp and file name in gzipped man
86 ;; pages (this is equivalent to 'gzip --no-name'.)
87 '(substitute* "setup.py"
88 (("gzip\\.open\\(gzfile, 'w', 9\\)")
89 "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")))))
ae05b185 90 (build-system python-build-system)
b951e26f
RW
91 (arguments
92 `(#:python ,python-2 ;incompatible with python 3
93 #:tests? #f ;no tests
94 #:phases
95 (modify-phases %standard-phases
96 (add-after 'install 'make-xrandr-available
97 (lambda* (#:key inputs outputs #:allow-other-keys)
98 (wrap-program (string-append (assoc-ref outputs "out")
99 "/bin/arandr")
100 `("PATH" ":" prefix (,(string-append (assoc-ref inputs "xrandr")
101 "/bin"))))
102 #t)))))
103 (inputs `(("pygtk" ,python2-pygtk)
104 ("xrandr" ,xrandr)))
b94a6ca0 105 (native-inputs `(("gettext" ,gettext-minimal)
f3b98f4f 106 ("python-docutils" ,python2-docutils)))
ae05b185
ML
107 (home-page "https://christian.amsuess.com/tools/arandr/")
108 (synopsis "Another RandR graphical user interface")
109 ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
110 (description "ARandR is designed to provide a simple visual front end for
111the X11 resize-and-rotate (RandR) extension. Relative monitor positions are
112shown graphically and can be changed in a drag-and-drop way. Configurations
113are saved as executable shell scripts which can be loaded without using this
114program.")
115 (license license:gpl3+)))
116
de878f1b
JD
117(define-public xclip
118 (package
119 (name "xclip")
120 (version "0.12")
121 (source
122 (origin
123 (method url-fetch)
124 (uri (string-append
de67e922
LF
125 "mirror://sourceforge/" name "/" name "/" version "/"
126 name "-" version ".tar.gz"))
de878f1b
JD
127 (sha256
128 (base32
129 "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
130 (build-system gnu-build-system)
131 (arguments
132 '(#:tests? #f)) ; There is no test suite
133 (inputs `(("libxmu" ,libxmu)
134 ("libxt" ,libxt)))
135 (home-page "http://xclip.sourceforge.net/")
136 (synopsis "Command line interface to X11 clipboard")
137 (description "Xclip is a command line interface to the X11 clipboard. It
138can also be used for copying files, as an alternative to sftp/scp, thus
139avoiding password prompts when X11 forwarding has already been setup.")
140 (license license:gpl2+)))
141
cf60e76a
DM
142(define-public libxkbcommon
143 (package
144 (name "libxkbcommon")
fbb4755c 145 (version "0.7.1")
cf60e76a
DM
146 (source (origin
147 (method url-fetch)
fbb4755c 148 (uri (string-append "https://xkbcommon.org/download/" name "-"
cf60e76a
DM
149 version ".tar.xz"))
150 (sha256
151 (base32
fbb4755c 152 "12z6hih3n1r0asp2hzp9qsiwdfkfz46jwp06x8kprr0r5rfk0nds"))))
cf60e76a
DM
153 (build-system gnu-build-system)
154 (inputs
155 `(("libx11" ,libx11)
156 ("libxcb" ,libxcb)
157 ("xkeyboard-config" ,xkeyboard-config)))
158 (native-inputs
159 `(("bison" ,bison)
160 ("pkg-config" ,pkg-config)))
161 (arguments
162 `(#:configure-flags
163 (list (string-append "--with-xkb-config-root="
164 (assoc-ref %build-inputs "xkeyboard-config")
165 "/share/X11/xkb")
166 (string-append "--with-x-locale-root="
167 (assoc-ref %build-inputs "libx11")
168 "/share/X11/locale"))))
fbb4755c 169 (home-page "https://xkbcommon.org/")
cf60e76a
DM
170 (synopsis "Library to handle keyboard descriptions")
171 (description "Xkbcommon is a library to handle keyboard descriptions,
172including loading them from disk, parsing them and handling their
173state. It is mainly meant for client toolkits, window systems, and other
174system applications; currently that includes Wayland, kmscon, GTK+, Qt,
175Clutter, and more. Despite the name, it is not currently used by anything
176X11 (yet).")
177 (license (license:x11-style "file://COPYING"
178 "See 'COPYING' in the distribution."))))
179
de51bf58
JD
180(define-public xdotool
181 (package
182 (name "xdotool")
6f74aecd 183 (version "3.20150503.1")
de51bf58
JD
184 (source
185 (origin
186 (method url-fetch)
187 (uri (string-append
6f74aecd
CAW
188 "https://github.com/jordansissel/xdotool/releases/download/v"
189 version "/xdotool-" version ".tar.gz"))
de51bf58
JD
190 (sha256
191 (base32
6f74aecd 192 "1lcngsw33fy9my21rdiz1gs474bfdqcfxjrnfggbx4aypn1nhcp8"))
fc1adab1 193 (patches (search-patches "xdotool-fix-makefile.patch"))))
de51bf58
JD
194 (build-system gnu-build-system)
195 (arguments
196 '(#:tests? #f ; Test suite requires a lot of black magic
ca0d2a63 197 #:phases
c237480b
EF
198 (modify-phases %standard-phases
199 (replace 'configure
200 (lambda* (#:key outputs #:allow-other-keys #:rest args)
201 (setenv "PREFIX" (assoc-ref outputs "out"))
202 (setenv "LDFLAGS"
203 (string-append "-Wl,-rpath="
204 (assoc-ref %outputs "out") "/lib"))
205 (setenv "CC" "gcc"))))))
de51bf58
JD
206 (native-inputs `(("perl" ,perl))) ; for pod2man
207 (inputs `(("libx11" ,libx11)
208 ("libxext" ,libxext)
209 ("libxi" ,libxi)
210 ("libxinerama" ,libxinerama)
6f74aecd
CAW
211 ("libxtst" ,libxtst)
212 ("libxkbcommon" ,libxkbcommon)))
de51bf58
JD
213 (home-page "http://www.semicomplete.com/projects/xdotool")
214 (synopsis "Fake keyboard/mouse input, window management, and more")
215 (description "Xdotool lets you simulate keyboard input and mouse activity,
216move and resize windows, etc. It does this using X11's XTEST extension and
217other Xlib functions. Additionally, you can search for windows and move,
218resize, hide, and modify window properties like the title. If your window
219manager supports it, you can use xdotool to switch desktops, move windows
220between desktops, and change the number of desktops.")
221 (license license:bsd-3)))
222
3c156c8a
JD
223(define-public xeyes
224 (package
225 (name "xeyes")
226 (version "1.0.1")
227 (source
228 (origin
229 (method url-fetch)
230 (uri (string-append
231 "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
232 version
233 ".orig.tar.gz"))
234 (sha256
235 (base32
236 "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
237 (build-system gnu-build-system)
238 (inputs
239 `(("libxext" ,libxext)
240 ("libxmu" ,libxmu)
241 ("libxt" ,libxt)))
242 (native-inputs
243 `(("pkg-config" ,pkg-config)))
244 (home-page "http://xeyes.sourcearchive.com/")
245 (synopsis "Follow-the-mouse X demo")
246 (description "Xeyes is a demo program for x.org. It shows eyes
247following the mouse.")
248 (license license:x11)))
249
250
251(define-public pixman
252 (package
253 (name "pixman")
6983ba56 254 (version "0.34.0")
997f86e9
LC
255 (source (origin
256 (method url-fetch)
257 (uri (string-append
258 "http://cairographics.org/releases/pixman-"
259 version ".tar.gz"))
260 (sha256
261 (base32
35bbe88b
MB
262 "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))
263 (patches (search-patches "pixman-CVE-2016-5296.patch"))))
3c156c8a
JD
264 (build-system gnu-build-system)
265 (inputs
997f86e9
LC
266 `(("libpng" ,libpng)
267 ("zlib" ,zlib)))
3c156c8a 268 (native-inputs
997f86e9 269 `(("pkg-config" ,pkg-config)))
3c156c8a
JD
270 (home-page "http://www.pixman.org/")
271 (synopsis "Low-level pixel manipulation library")
272 (description "Pixman is a low-level software library for pixel
273manipulation, providing features such as image compositing and trapezoid
274rasterisation.")
275 (license license:x11)))
276
3c156c8a
JD
277(define-public libdrm
278 (package
279 (name "libdrm")
84080b43 280 (version "2.4.80")
3c156c8a
JD
281 (source
282 (origin
283 (method url-fetch)
284 (uri (string-append
5cc3096c 285 "https://dri.freedesktop.org/libdrm/libdrm-"
3c156c8a
JD
286 version
287 ".tar.bz2"))
288 (sha256
0b684f49 289 (base32
84080b43 290 "1wa9cnzf60xwx67zq9ay48xr3j3sn1z80q77jpbzmkg906b52am8"))
fc1adab1 291 (patches (search-patches "libdrm-symbol-check.patch"))))
3c156c8a
JD
292 (build-system gnu-build-system)
293 (inputs
294 `(("libpciaccess" ,libpciaccess)
295 ("libpthread-stubs" ,libpthread-stubs)))
296 (native-inputs
297 `(("pkg-config" ,pkg-config)))
298 (home-page "http://dri.freedesktop.org/wiki/")
299 (synopsis "Direct rendering userspace library")
300 (description "The Direct Rendering Infrastructure, also known as the DRI,
301is a framework for allowing direct access to graphics hardware under the
302X Window System in a safe and efficient manner. It includes changes to the
303X server, to several client libraries, and to the kernel (DRM, Direct
304Rendering Manager). The most important use for the DRI is to create fast
305OpenGL implementations providing hardware acceleration for Mesa.
306Several 3D accelerated drivers have been written to the DRI specification,
307including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
308and Matrox.")
309 (license license:x11)))
310
311
3c156c8a
JD
312(define-public mtdev
313 (package
314 (name "mtdev")
1f1e620f 315 (version "1.1.5")
3c156c8a
JD
316 (source
317 (origin
318 (method url-fetch)
319 (uri (string-append
320 "http://bitmath.org/code/mtdev/mtdev-"
321 version ".tar.bz2"))
322 (sha256
1f1e620f
EF
323 (base32
324 "0zxs7shzgbalkvlaiibi25bd902rbmkv9n1lww6q8j3ri9qdaxv6"))))
3c156c8a
JD
325 (build-system gnu-build-system)
326 (home-page "http://bitmath.org/code/mtdev/")
327 (synopsis "Multitouch protocol translation library")
328 (description "Mtdev is a stand-alone library which transforms all
329variants of kernel MT events to the slotted type B protocol. The events
330put into mtdev may be from any MT device, specifically type A without
331contact tracking, type A with contact tracking, or type B with contact
332tracking.")
333 (license license:x11)))
a693bba1
SB
334
335(define-public startup-notification
336 (package
337 (name "startup-notification")
338 (version "0.12")
339 (source
340 (origin
341 (method url-fetch)
5cc3096c 342 (uri (string-append "https://www.freedesktop.org/software/" name
a693bba1
SB
343 "/releases/" name "-" version ".tar.gz"))
344 (sha256
345 (base32
346 "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
347 (build-system gnu-build-system)
348 (native-inputs `(("pkg-config" ,pkg-config)))
349 (inputs
350 `(("libx11" ,libx11)
351 ("xcb-util" ,xcb-util)))
352 (home-page "http://www.freedesktop.org/wiki/Software/startup-notification/")
353 (synopsis "Application startup notification and feedback library")
354 (description
355 "Startup-notification contains a reference implementation of the startup
356notification protocol. The reference implementation is mostly under an X Window
357System style license, and has no special dependencies.")
358 ;; Most of the code is provided under x11 license.
359 (license license:lgpl2.0+)))
2e88e089
AK
360
361(define-public wmctrl
362 (package
363 (name "wmctrl")
364 (version "1.07")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append
d6420533 368 "https://sites.google.com/site/tstyblo/wmctrl/wmctrl-"
2e88e089
AK
369 version ".tar.gz"))
370 (sha256
371 (base32
372 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
fc1adab1 373 (patches (search-patches "wmctrl-64-fix.patch"))))
2e88e089
AK
374 (build-system gnu-build-system)
375 (arguments
376 '(#:configure-flags
377 (list (string-append "--mandir="
378 (assoc-ref %outputs "out")
379 "/share/man"))))
380 (native-inputs
381 `(("pkg-config" ,pkg-config)))
382 (inputs
383 `(("libx11" ,libx11)
384 ("libxmu" ,libxmu)
385 ("glib" ,glib)))
386 (home-page "http://tomas.styblo.name/wmctrl/")
387 (synopsis "Command-line tool to control X window managers")
388 (description
389 "Wmctrl allows to interact with an X window manager that is compatible
390with the EWMH/NetWM specification. It can query the window manager for
391information, and request for certain window management actions (resize and
e881752c 392move windows, switch between desktops, etc.).")
2e88e089 393 (license license:gpl2+)))
1410f342
AK
394
395(define-public scrot
396 (package
397 (name "scrot")
398 (version "0.8")
399 (source (origin
400 (method url-fetch)
9da459f3
EF
401 (uri (list (string-append
402 "http://linuxbrit.co.uk/downloads/scrot-"
403 version ".tar.gz")
404 (string-append
405 "https://fossies.org/linux/privat/old/scrot-"
c5d15d41 406 version ".tar.gz")))
1410f342
AK
407 (sha256
408 (base32
409 "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
410 (build-system gnu-build-system)
411 (arguments
412 ;; By default, man and doc are put in PREFIX/{man,doc} instead of
413 ;; PREFIX/share/{man,doc}.
414 '(#:configure-flags
415 (list (string-append "--mandir="
416 (assoc-ref %outputs "out")
417 "/share/man"))
d5047266
EF
418 #:phases
419 (modify-phases %standard-phases
420 (replace 'install
421 (lambda* (#:key inputs outputs #:allow-other-keys)
422 (let* ((out (assoc-ref outputs "out"))
423 (doc (string-append out "/share/doc/scrot")))
424 (mkdir-p doc)
425 (zero?
426 (system* "make" "install"
427 (string-append "docsdir=" doc)))))))))
1410f342
AK
428 (inputs
429 `(("libx11" ,libx11)
430 ("giblib" ,giblib)))
431 (home-page "http://linuxbrit.co.uk/software/")
432 (synopsis "Command-line screen capture utility for X Window System")
433 (description
434 "Scrot allows to save a screenshot of a full screen, a window or a part
435of the screen selected by mouse.")
436 ;; This license removes a clause about X Consortium from the original
437 ;; X11 license.
438 (license (license:x11-style "file://COPYING"
439 "See 'COPYING' in the distribution."))))
4a01b30b 440
9f1d33be
AK
441(define-public slop
442 (package
443 (name "slop")
ac1560f1 444 (version "6.3.41")
9f1d33be
AK
445 (source (origin
446 (method url-fetch)
447 (uri (string-append
448 "https://github.com/naelstrof/slop/archive/v"
449 version ".tar.gz"))
450 (file-name (string-append name "-" version ".tar.gz"))
451 (sha256
452 (base32
ac1560f1 453 "1yiv0ak1z7zbmcdw0dwx2gpblrh7l7s3l7y7sgpx071dy8s4rqpb"))))
9f1d33be 454 (build-system cmake-build-system)
937b71df 455 (arguments
e1c014d7 456 '(#:tests? #f)) ; no "check" target
9f1d33be 457 (inputs
937b71df 458 `(("glm" ,glm)
9f1d33be 459 ("libxext" ,libxext)
e1c014d7 460 ("libxrender" ,libxrender)
9f1d33be
AK
461 ("mesa" ,mesa)))
462 (home-page "https://github.com/naelstrof/slop")
463 (synopsis "Select a region and print its bounds to stdout")
464 (description
465 "slop (Select Operation) is a tool that queries for a selection from a
466user and prints the region to stdout. It grabs the mouse and turns it into a
467crosshair, lets the user click and drag to make a selection (or click on a
468window) while drawing a pretty box around it, then finally prints the
469selection's dimensions to stdout.")
470 (license license:gpl3+)))
471
5c93de73
AK
472(define-public maim
473 (package
474 (name "maim")
a3e85a90 475 (version "5.4.63")
5c93de73
AK
476 (source (origin
477 (method url-fetch)
478 (uri (string-append
479 "https://github.com/naelstrof/maim/archive/v"
480 version ".tar.gz"))
481 (file-name (string-append name "-" version ".tar.gz"))
482 (sha256
483 (base32
a3e85a90 484 "0ncly3mmg9pihda3jfwmvfa4sd3xanrm8hpvfq7lr2rl8rqknx80"))))
5c93de73
AK
485 (build-system cmake-build-system)
486 (arguments
2b7d10d2 487 '(#:tests? #f)) ; no "check" target
5c93de73 488 (inputs
2b7d10d2
MB
489 `(("glm" ,glm)
490 ("libjpeg" ,libjpeg-turbo)
491 ("libpng" ,libpng)
492 ("libxcomposite" ,libxcomposite)
5c93de73 493 ("libxfixes" ,libxfixes)
2b7d10d2
MB
494 ("libxrandr" ,libxrandr)
495 ("mesa" ,mesa)
496 ("slop" ,slop)
497 ("zlib" ,zlib)))
5c93de73
AK
498 (home-page "https://github.com/naelstrof/maim")
499 (synopsis "Screenshot utility for X Window System")
500 (description
501 "maim (Make Image) is a tool that takes screenshots of your desktop and
502saves it in any format. Along with a full screen, it allows you to capture a
503predefined region or a particular window. Also, it makes it possible to
504include cursor in the resulting image.")
505 (license license:gpl3+)))
506
4a01b30b
AK
507(define-public unclutter
508 (package
509 (name "unclutter")
510 (version "8")
511 (source (origin
512 (method url-fetch)
513 (uri (string-append
514 "http://ftp.x.org/contrib/utilities/unclutter-"
515 version ".tar.Z"))
516 (sha256
517 (base32
518 "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
519 (build-system gnu-build-system)
520 (arguments
521 '(#:tests? #f ; no check target
ea0836cd
EF
522 #:phases
523 (modify-phases %standard-phases
524 (delete 'configure)
525 (replace 'install
526 (lambda* (#:key inputs outputs #:allow-other-keys)
527 (let* ((out (assoc-ref outputs "out"))
528 (bin (string-append out "/bin"))
529 (man1 (string-append out "/share/man/man1")))
530 (mkdir-p bin)
531 (mkdir-p man1)
532 (zero?
533 (system* "make" "install" "install.man"
534 (string-append "BINDIR=" bin)
535 (string-append "MANDIR=" man1)))))))))
4a01b30b
AK
536 (inputs `(("libx11" ,libx11)))
537 (home-page "http://ftp.x.org/contrib/utilities/")
538 (synopsis "Hide idle mouse cursor")
539 (description
540 "Unclutter is a program which runs permanently in the background of an
541X11 session. It checks on the X11 pointer (cursor) position every few
542seconds, and when it finds it has not moved (and no buttons are pressed
543on the mouse, and the cursor is not in the root window) it creates a
544small sub-window as a child of the window the cursor is in. The new
545window installs a cursor of size 1x1 but a mask of all 0, i.e. an
546invisible cursor. This allows you to see all the text in an xterm or
547xedit, for example. The human factors crowd would agree it should make
548things less distracting.")
549 (license license:public-domain)))
ab69d9ac
LC
550
551(define-public xlockmore
552 (package
553 (name "xlockmore")
e4ddf924 554 (version "5.47")
ab69d9ac
LC
555 (source (origin
556 (method url-fetch)
20c04358
LF
557 (uri (list (string-append
558 "http://www.tux.org/~bagleyd/xlock/xlockmore-"
559 version ".tar.xz")
560 (string-append
561 "http://www.tux.org/~bagleyd/xlock/xlockmore-old"
562 "/xlockmore-" version
e4ddf924 563 "/xlockmore-" version ".tar.xz")))
ab69d9ac
LC
564 (sha256
565 (base32
e4ddf924 566 "138d79b8zc2hambbr9fnxp3fhihlcljgqns04zf0kv2f53pavqwl"))))
ab69d9ac
LC
567 (build-system gnu-build-system)
568 (arguments
569 '(#:configure-flags (list (string-append "--enable-appdefaultdir="
570 (assoc-ref %outputs "out")
571 "/lib/X11/app-defaults"))
572 #:tests? #f)) ;no such thing as a test suite
573 (inputs
574 `(("libX11" ,libx11)
575 ("libXext" ,libxext)
576 ("libXt" ,libxt)
577 ("linux-pam" ,linux-pam)))
578 (home-page "http://www.tux.org/~bagleyd/xlockmore.html")
579 (synopsis "Screen locker for the X Window System")
580 (description
581 "XLockMore is a classic screen locker and screen saver for the
582X Window System.")
166191b3 583 (license (license:non-copyleft #f "See xlock.c.")
e4ddf924 584 ))) ; + GPLv2 in modes/glx/biof.c.
11447a79
AK
585
586(define-public xosd
587 (package
588 (name "xosd")
589 (version "2.2.14")
590 (source (origin
591 (method url-fetch)
592 (uri (string-append
de67e922
LF
593 "mirror://sourceforge/libxosd/libxosd/xosd-" version "/"
594 name "-" version ".tar.gz"))
11447a79
AK
595 (sha256
596 (base32
597 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg"))))
598 (build-system gnu-build-system)
599 (arguments
600 '(#:configure-flags
601 (list (string-append "--mandir=" %output "/share/man"))))
602 (inputs
603 `(("libx11" ,libx11)
604 ("libxt" ,libxt)
605 ("libxext" ,libxext)
606 ("libxinerama" ,libxinerama)))
3b3b60d0 607 (home-page "https://sourceforge.net/projects/libxosd/")
11447a79
AK
608 (synopsis "X On Screen Display")
609 (description
610 "XOSD provides a C library and a simple utility (osd_cat) for displaying
611transparent text on your screen.")
612 (license license:gpl2+)))
76212b57
ML
613
614(define-public xbindkeys
615 (package
616 (name "xbindkeys")
617 (version "1.8.6")
618 (source (origin
619 (method url-fetch)
620 ;; Download from the savannah mirror list fails
621 (uri (string-append
622 "http://www.nongnu.org/xbindkeys/xbindkeys-"
623 version
624 ".tar.gz"))
625 (sha256
626 (base32
627 "060df6d8y727jp1inp7blp44cs8a7jig7vcm8ndsn6gw36z1h3bc"))))
628 (build-system gnu-build-system)
629 (inputs
630 `(("libx11" ,libx11)
631 ("guile" ,guile-2.0)))
632 (home-page "http://www.nongnu.org/xbindkeys/")
633 (synopsis "Associate a combination of keys with a shell command")
634 (description
635 "XBindKeys is a program that allows you to launch shell commands with
636your keyboard or your mouse under the X Window System. It links commands to
637keys or mouse buttons, using a configuration file. It's independent of the
638window manager and can capture all keyboard keys (ex: Power, Wake...). It
639optionally supports a Guile-based configuration file layout, which enables you
640to access all XBindKeys internals, so you can have key combinations, double
641clicks or timed double clicks take actions. Also all functions that work in
642Guile will work for XBindKeys.")
643 (license license:gpl2+)))
42f2c2b9 644
998b8c07 645(define-public sxhkd
646 (package
647 (name "sxhkd")
46cd684e 648 (version "0.5.6")
998b8c07 649 (source
650 (origin
651 (file-name (string-append name "-" version ".tar.gz"))
652 (method url-fetch)
653 (uri (string-append
654 "https://github.com/baskerville/sxhkd/archive/"
655 version ".tar.gz"))
656 (sha256
657 (base32
46cd684e 658 "15grmzpxz5fqlbfg2slj7gb7r6nzkvjmflmbkqx7mlby9pm6wdkj"))))
998b8c07 659 (build-system gnu-build-system)
660 (inputs
661 `(("asciidoc" ,asciidoc)
662 ("libxcb" ,libxcb)
663 ("xcb-util" ,xcb-util)
664 ("xcb-util-keysyms" ,xcb-util-keysyms)
665 ("xcb-util-wm" ,xcb-util-wm)))
666 (arguments
667 '(#:phases (alist-delete 'configure %standard-phases)
668 #:tests? #f ; no check target
669 #:make-flags (list "CC=gcc"
670 (string-append "PREFIX=" %output))))
671 (home-page "https://github.com/baskerville/sxhkd")
672 (synopsis "Simple X hotkey daemon")
673 (description "sxhkd is a simple X hotkey daemon with a powerful and
674compact configuration syntax.")
675 (license license:bsd-2)))
676
42f2c2b9
AG
677(define-public rxvt-unicode
678 (package
679 (name "rxvt-unicode")
71ca0539 680 (version "9.22")
1ef3f91a
ML
681 (source (origin
682 (method url-fetch)
63999415 683 (uri (string-append "http://dist.schmorp.de/rxvt-unicode/Attic/"
1ef3f91a 684 name "-" version ".tar.bz2"))
0fd0bb56 685 (patches (search-patches "rxvt-unicode-escape-sequences.patch"))
1ef3f91a
ML
686 (sha256
687 (base32
71ca0539 688 "1pddjn5ynblwfrdmskylrsxb9vfnk3w4jdnq2l8xn2pspkljhip9"))))
42f2c2b9 689 (build-system gnu-build-system)
1ef3f91a
ML
690 (arguments
691 ;; This sets the destination when installing the necessary terminal
692 ;; capability data, which are not provided by 'ncurses'. See
693 ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
33c93ea3 694 `(#:make-flags (list (string-append "TERMINFO="
1ef3f91a 695 (assoc-ref %outputs "out")
33c93ea3 696 "/share/terminfo"))
697 #:phases
698 (modify-phases %standard-phases
699 (add-after 'install 'install-desktop-urxvt
700 (lambda* (#:key outputs #:allow-other-keys)
701 (let* ((output (assoc-ref outputs "out"))
702 (desktop (string-append output "/share/applications")))
703 (mkdir-p desktop)
704 (with-output-to-file
705 (string-append desktop "/urxvt.desktop")
706 (lambda _
707 (format #t
708 "[Desktop Entry]~@
709 Name=rxvt-unicode~@
710 Comment=~@
711 Exec=~a/bin/urxvt~@
712 TryExec=~@*~a/bin/urxvt~@
713 Icon=~@
714 Type=Application~%"
715 output)))
716 #t)))
717 (add-after 'install 'install-desktop-urxvtc
718 (lambda* (#:key outputs #:allow-other-keys)
719 (let* ((output (assoc-ref outputs "out"))
720 (desktop (string-append output "/share/applications")))
721 (mkdir-p desktop)
722 (with-output-to-file
723 (string-append desktop "/urxvtc.desktop")
724 (lambda _
725 (format #t
726 "[Desktop Entry]~@
120349bf 727 Name=rxvt-unicode (client)~@
33c93ea3 728 Comment=Rxvt clone with XFT and unicode support~@
729 Exec=~a/bin/urxvtc~@
730 TryExec=~@*~a/bin/urxvtc~@
731 Icon=~@
732 Type=Application~%"
733 output)))
734 #t))))))
42f2c2b9
AG
735 (inputs
736 `(("libXft" ,libxft)
737 ("libX11" ,libx11)))
738 (native-inputs
1ef3f91a
ML
739 `(("ncurses" ,ncurses) ;trigger the installation of terminfo data
740 ("perl" ,perl)
42f2c2b9 741 ("pkg-config" ,pkg-config)))
1ef3f91a
ML
742 ;; FIXME: This should only be located in 'ncurses'. Nonetheless it is
743 ;; provided for usability reasons. See <https://bugs.gnu.org/22138>.
744 (native-search-paths
745 (list (search-path-specification
746 (variable "TERMINFO_DIRS")
747 (files '("share/terminfo")))))
42f2c2b9
AG
748 (home-page "http://software.schmorp.de/pkg/rxvt-unicode.html")
749 (synopsis "Rxvt clone with XFT and unicode support")
750 (description "Rxvt-unicode (urxvt) is a colour vt102 terminal emulator
751intended as an xterm replacement for users who do not require features such as
752Tektronix 4014 emulation and toolkit-style configurability. It supports
753unicode, XFT and may be extended with Perl plugins. It also comes with a
754client/daemon pair that lets you open any number of terminal windows from
755within a single process.")
756 (license license:gpl3+)))
ca0d2a63
AG
757
758(define-public xcape
759 (package
760 (name "xcape")
82f44a36 761 (version "1.2")
ca0d2a63
AG
762 (source
763 (origin
764 (method url-fetch)
765 (uri (string-append "https://github.com/alols/" name
766 "/archive/v" version ".tar.gz"))
767 (file-name (string-append name "-" version ".tar.gz"))
768 (sha256
769 (base32
82f44a36 770 "0898zc3vwxia00h9kfknpf7jygxgwggrx8v5mxc31w4lzn2dhzm2"))))
ca0d2a63
AG
771 (build-system gnu-build-system)
772 (arguments
773 `(#:tests? #f ; no check target
774 #:phases (alist-delete 'configure %standard-phases) ; no configure script
775 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
776 "MANDIR=/share/man/man1"
777 "CC=gcc")))
778 (inputs
779 `(("libxtst" ,libxtst)
780 ("libx11" ,libx11)))
781 (native-inputs
782 `(("pkg-config" ,pkg-config)))
7bf837fd 783 (home-page "https://github.com/alols/xcape")
ca0d2a63
AG
784 (synopsis "Use a modifier key in X.org as another key")
785 (description
786 "This utility for X.org allows to use modifier key as another key when
787pressed and released on its own. The default behaviour is to generate the
788Escape key when Left Control is pressed and released on its own.")
789 (license license:gpl3+)))
f1f7049e
AW
790
791(define-public libwacom
792 (package
793 (name "libwacom")
0c70d809 794 (version "0.25")
f1f7049e
AW
795 (source (origin
796 (method url-fetch)
797 (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/"
798 name "-" version ".tar.bz2"))
799 (sha256
800 (base32
0c70d809 801 "1k20w2fkql3yr0dpdg51jjwzv7d4kp53ajmpyhcjxa08s0n8dl19"))))
f1f7049e
AW
802 (build-system glib-or-gtk-build-system)
803 (native-inputs
804 `(("pkg-config" ,pkg-config)))
805 (inputs
34efce4f 806 `(("gtk+" ,gtk+)
b9cbe316 807 ("libgudev" ,libgudev)
f1f7049e
AW
808 ("eudev" ,eudev)
809 ("libxml2" ,libxml2)))
34efce4f
AW
810 (propagated-inputs
811 ;; libwacom includes header files that include GLib, and libinput uses
812 ;; those header files.
813 `(("glib" ,glib)))
f1f7049e
AW
814 (home-page "http://linuxwacom.sourceforge.net/")
815 (synopsis "Helper library for Wacom tablet settings")
816 (description
34efce4f
AW
817 "Libwacom is a library to help implement Wacom tablet settings. It is
818intended to be used by client-programs that need model identification. It is
819already being used by the gnome-settings-daemon and the GNOME Control Center
820Wacom tablet applet.")
f1f7049e 821 (license license:x11)))
ab42a2a7
AW
822
823(define-public xf86-input-wacom
824 (package
825 (name "xf86-input-wacom")
00c5e3e5 826 (version "0.34.2")
ab42a2a7
AW
827 (source (origin
828 (method url-fetch)
829 (uri (string-append
830 "mirror://sourceforge/linuxwacom/xf86-input-wacom/"
831 name "-" version ".tar.bz2"))
832 (sha256
833 (base32
00c5e3e5 834 "073bf12ka1mcqvr1sviixb51bsfx37jalrj9xw53f10i2kdvkl9a"))))
ab42a2a7
AW
835 (arguments
836 `(#:configure-flags
837 (list (string-append "--with-sdkdir="
838 (assoc-ref %outputs "out")
839 "/include/xorg")
840 (string-append "--with-xorg-conf-dir="
841 (assoc-ref %outputs "out")
842 "/share/X11/xorg.conf.d"))))
843 (build-system gnu-build-system)
844 (native-inputs
845 `(("pkg-config" ,pkg-config)))
846 (inputs
847 `(("xorg-server" ,xorg-server)
848 ("libxrandr" ,libxrandr)
849 ("libxinerama" ,libxinerama)
850 ("libxi" ,libxi)
851 ("eudev" ,eudev)))
852 (home-page "http://linuxwacom.sourceforge.net/")
853 (synopsis "Wacom input driver for X")
854 (description
855 "The xf86-input-wacom driver is the wacom-specific X11 input driver for
856the X.Org X Server version 1.7 and later (X11R7.5 or later).")
857 (license license:x11)))
6645753b
FPS
858
859(define-public redshift
860 (package
861 (name "redshift")
85a94d29 862 (version "1.11")
6645753b
FPS
863 (source
864 (origin
865 (method url-fetch)
866 (uri
867 (string-append "https://github.com/jonls/redshift/"
868 "releases/download/v" version
869 "/redshift-" version ".tar.xz"))
870 (sha256
871 (base32
85a94d29 872 "0ngkwj7rg8nfk806w0sg443w6wjr91xdc0zisqfm5h2i77wm1qqh"))))
6645753b
FPS
873 (build-system gnu-build-system)
874 (native-inputs
875 `(("pkg-config" ,pkg-config)
876 ("intltool" ,intltool)))
877 (inputs
878 `(("libdrm" ,libdrm)
879 ("libx11" ,libx11)
880 ("libxcb" ,libxcb)
b3546174 881 ("libxxf86vm" ,libxxf86vm)
6645753b
FPS
882 ("glib" ,glib))) ;for Geoclue2 support
883 (home-page "https://github.com/jonls/redshift")
884 (synopsis "Adjust the color temperature of your screen")
885 (description
886 "Redshift adjusts the color temperature according to the position of the
887sun. A different color temperature is set during night and daytime. During
888twilight and early morning, the color temperature transitions smoothly from
889night to daytime temperature to allow your eyes to slowly adapt. At night the
890color temperature should be set to match the lamps in your room.")
891 (license license:gpl3+)))
b4c400a7
CAW
892
893(define-public xscreensaver
894 (package
895 (name "xscreensaver")
f6864729 896 (version "5.36")
b4c400a7
CAW
897 (source
898 (origin
899 (method url-fetch)
900 (uri
901 (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
902 version ".tar.gz"))
903 (sha256
904 (base32
f6864729 905 "0v60mdhvv42jla5hljp77igng11kxpah5fs9j7ci65kz0hw552vb"))))
b4c400a7
CAW
906 (build-system gnu-build-system)
907 (arguments
908 `(#:tests? #f ; no check target
909 #:phases
910 (modify-phases %standard-phases
911 (add-before 'configure 'adjust-gtk-resource-paths
912 (lambda _
913 (substitute* '("driver/Makefile.in" "po/Makefile.in.in")
914 (("@GTK_DATADIR@") "@datadir@")
915 (("@PO_DATADIR@") "@datadir@")))))
916 #:configure-flags '("--with-pam" "--with-proc-interrupts"
917 "--without-readdisplay")
918 #:make-flags (list (string-append "AD_DIR="
919 (assoc-ref %outputs "out")
920 "/usr/lib/X11/app-defaults"))))
921 (native-inputs
922 `(("pkg-config" ,pkg-config)
923 ("intltool" ,intltool)))
924 (inputs
925 `(("libx11" ,libx11)
926 ("libxext" ,libxext)
927 ("libxi" ,libxi)
928 ("libxt" ,libxt)
929 ("libxft" ,libxft)
930 ("libxmu" ,libxmu)
931 ("libxpm" ,libxpm)
932 ("libglade" ,libglade)
933 ("libxml2" ,libxml2)
934 ("libsm" ,libsm)
935 ("libjpeg" ,libjpeg)
936 ("linux-pam" ,linux-pam)
937 ("pango" ,pango)
938 ("gtk+" ,gtk+)
939 ("perl" ,perl)
940 ("cairo" ,cairo)
941 ("bc" ,bc)
942 ("libxrandr" ,libxrandr)
943 ("glu" ,glu)
944 ("glib" ,glib)))
945 (home-page "https://www.jwz.org/xscreensaver/")
946 (synopsis "Classic screen saver suite supporting screen locking")
947 (description
948 "xscreensaver is a popular screen saver collection with many entertaining
949demos. It also acts as a nice screen locker.")
950 ;; xscreensaver doesn't have a single copyright file and instead relies on
951 ;; source comment headers, though most files have the same lax
952 ;; permissions. To reduce complexity, we're pointing at Debian's
953 ;; breakdown of the copyright information.
954 (license (license:non-copyleft
955 (string-append
956 "http://metadata.ftp-master.debian.org/changelogs/"
706998e7 957 "/main/x/xscreensaver/xscreensaver_5.36-1_copyright")))))
f40dfcd0 958
cab1c117
MB
959(define-public xsel
960 (package
961 (name "xsel")
962 (version "1.2.0")
963 (source (origin
964 (method url-fetch)
965 (uri (string-append "http://www.vergenet.net/~conrad/software"
966 "/xsel/download/xsel-" version ".tar.gz"))
967 (sha256
968 (base32
969 "070lbcpw77j143jrbkh0y1v10ppn1jwmjf92800w7x42vh4cw9xr"))))
970 (build-system gnu-build-system)
971 (inputs
972 `(("libxt" ,libxt)))
973 (home-page "http://www.vergenet.net/~conrad/software/xsel/")
974 (synopsis "Manipulate X selection")
975 (description
976 "XSel is a command-line program for getting and setting the contents of
977the X selection. Normally this is only accessible by manually highlighting
978information and pasting it with the middle mouse button.
979
980XSel reads from standard input and writes to standard output by default,
981but can also follow a growing file, display contents, delete entries and more.")
982 (license (license:x11-style "file://COPYING"
983 "See COPYING in the distribution."))))
984
6cfd1a68
AK
985(define-public xdpyprobe
986 (package
987 (name "xdpyprobe")
988 (version "0.1")
989 (source (origin
990 (method url-fetch)
991 (uri (string-append "https://github.com/alezost/" name
992 "/releases/download/v" version
993 "/" name "-" version ".tar.gz"))
994 (sha256
995 (base32
996 "1h09wd2qcg08rj5hcakvdh9q01hkrj8vxly94ax3ch2x06lm0zq8"))))
997 (build-system gnu-build-system)
998 (inputs
999 `(("libx11" ,libx11)))
1000 (home-page "https://github.com/alezost/xdpyprobe")
1001 (synopsis "Probe X server for connectivity")
1002 (description
1003 "Xdpyprobe is a tiny C program whose only purpose is to probe a
1004connectivity of the X server running on a particular @code{DISPLAY}.")
1005 (license license:gpl3+)))
1006
f40dfcd0
DM
1007(define-public rofi
1008 (package
1009 (name "rofi")
88f2dd1d 1010 (version "1.3.1")
f40dfcd0
DM
1011 (source (origin
1012 (method url-fetch)
1013 (uri (string-append "https://github.com/DaveDavenport/rofi/"
1014 "releases/download/"
1015 version "/rofi-" version ".tar.xz"))
1016 (sha256
1017 (base32
88f2dd1d 1018 "1s47biv6d68nblpz6d3aklsar1xxxcilzr4y77v3hz2w1wbz2b5m"))))
f40dfcd0
DM
1019 (build-system gnu-build-system)
1020 (inputs
68c35ba9 1021 `(("pango" ,pango)
f40dfcd0
DM
1022 ("cairo" ,cairo)
1023 ("glib" ,glib)
1024 ("startup-notification" ,startup-notification)
1025 ("libxkbcommon" ,libxkbcommon)
1026 ("libxcb" ,libxcb)
1027 ("xcb-util" ,xcb-util)
68c35ba9 1028 ("xcb-util-xrm" ,xcb-util-xrm)
f40dfcd0
DM
1029 ("xcb-util-wm" ,xcb-util-wm)))
1030 (native-inputs
1031 `(("pkg-config" ,pkg-config)))
1032 (arguments
46d6219d
MB
1033 `(#:parallel-tests? #f ; May fail in some circumstances.
1034 #:phases
f40dfcd0
DM
1035 (modify-phases %standard-phases
1036 (add-before 'configure 'adjust-tests
1037 (lambda _
1038 (substitute* '("test/helper-expand.c")
1039 (("~root") "/root")
1040 (("~") "")
1041 (("g_get_home_dir \\(\\)") "\"/\"")))))))
1042 (home-page "https://davedavenport.github.io/rofi/")
1043 (synopsis "Application Launcher")
1044 (description "Rofi is a minimalist Application Launcher. It memorizes which
1045applications you regularily use and also allows you to search for an application
1046by name.")
1047 (license license:expat)))
751f6871
ML
1048
1049(define-public tint2
1050 (package
1051 (name "tint2")
1052 (version "0.12.11")
1053 (source (origin
1054 (method url-fetch)
1055 (uri (string-append "https://gitlab.com/o9000/" name
1056 "/repository/archive.tar.gz?ref=" version))
1057 (file-name (string-append name "-" version ".tar.gz"))
1058 (sha256
1059 (base32
1060 "0dv7zaj2ahnfclnwnwcz9arrvzxn65yy29z7fqdgifdh3jk1kl2h"))))
1061 (build-system cmake-build-system)
1062 (arguments
1063 '(#:tests? #f ;no test target
1064 #:phases
1065 (modify-phases %standard-phases
1066 (add-after 'unpack 'fix-installation-prefix
1067 (lambda _
1068 (substitute* "CMakeLists.txt"
1069 (("/etc") "${CMAKE_INSTALL_PREFIX}/etc")))))))
1070 (inputs
1071 `(("gtk+" ,gtk+-2)
1072 ("imlib2" ,imlib2)
1073 ("librsvg" ,librsvg)
1074 ("libxcomposite" ,libxcomposite)
1075 ("libxdamage" ,libxdamage)
1076 ("libxft" ,libxft)
1077 ("libxinerama" ,libxinerama)
1078 ("libxrandr" ,libxrandr)
1079 ("startup-notification" ,startup-notification)))
1080 (native-inputs
b94a6ca0 1081 `(("gettext" ,gettext-minimal)
751f6871
ML
1082 ("pkg-config" ,pkg-config)))
1083 (home-page "https://gitlab.com/o9000/tint2")
1084 (synopsis "Lightweight task bar")
1085 (description
1086 "Tint2 is a simple task bar made for modern X window managers. It was
1087specifically made for Openbox but it should also work with other window
1088managers (GNOME, KDE, XFCE etc.).
1089
1090The taskbar includes transparency and color settings for the font, icons,
1091border, and background. It also supports multihead setups, customized mouse
1092actions, a built-in clock, a battery monitor and a system tray.")
1093 (license license:gpl2)))
4493a3c2 1094
37447422
MM
1095(define-public dzen
1096 (let ((commit "488ab66019f475e35e067646621827c18a879ba1")
1097 (revision "1"))
1098 (package
1099 (name "dzen")
1100 (version (string-append "0.9.5-" ; Taken from `config.mk`.
1101 revision "." (string-take commit 7)))
1102 (source (origin
1103 (method git-fetch)
1104 (uri (git-reference
1105 (url "https://github.com/robm/dzen.git")
1106 (commit commit)))
1107 (file-name (string-append name "-" version))
1108 (sha256
1109 (base32
1110 "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw"))))
1111 (build-system gnu-build-system)
1112 (arguments
1113 `(#:tests? #f ; No test suite.
1114 #:make-flags ; Replacement for `config.mk`.
1115 (list
1116 (string-append "VERSION = " ,version)
1117 (string-append "PREFIX = " %output)
1118 "MANPREFIX = ${PREFIX}/share/man"
1119 "INCS = -I."
1120 "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)"
1121 "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\
1122 -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)"
1123 "LDFLAGS = ${LIBS}"
1124 "CC = gcc"
1125 "LD = ${CC}")
1126 #:phases
1127 (modify-phases %standard-phases
1128 (delete 'configure) ; No configuration script.
1129 ;; Use own make-flags instead of `config.mk`.
1130 (add-before 'build 'dont-include-config-mk
1131 (lambda _
1132 (substitute* "Makefile" (("include config.mk") ""))
1133 #t)))))
1134 (inputs
1135 `(("libx11" ,libx11)
1136 ("libxft" ,libxft)
1137 ("libxpm" ,libxpm)
1138 ("libxinerama" ,libxinerama)))
1139 (native-inputs `(("pkg-config" ,pkg-config)))
1140 (synopsis "General purpose messaging, notification and menuing program for X11")
1141 (description "Dzen is a general purpose messaging, notification and menuing
1142program for X11. It was designed to be fast, tiny and scriptable in any language.")
1143 (home-page "https://github.com/robm/dzen")
1144 (license license:expat))))
1145
4493a3c2
MB
1146(define-public xcb-util-xrm
1147 (package
1148 (name "xcb-util-xrm")
7aef9930 1149 (version "1.2")
4493a3c2
MB
1150 (source (origin
1151 (method url-fetch)
1152 (uri (string-append
1153 "https://github.com/Airblader/xcb-util-xrm/releases"
1154 "/download/v" version "/xcb-util-xrm-" version ".tar.bz2"))
1155 (sha256
1156 (base32
7aef9930 1157 "0vbqhag51i0njc8d5fc8c6aa12496cwrc3s6s7sa5kfc17cwhppp"))
4493a3c2
MB
1158 (modules '((guix build utils)))
1159 (snippet
1160 ;; Drop bundled m4.
1161 '(delete-file-recursively "m4"))))
1162 (build-system gnu-build-system)
1163 (native-inputs
1164 `(("pkg-config" ,pkg-config)
1165 ("m4" ,m4)
1166 ("libx11" ,libx11))) ; for tests
1167 (inputs
1168 `(("libxcb" ,libxcb)
1169 ("xcb-util" ,xcb-util)))
1170 (home-page "https://github.com/Airblader/xcb-util-xrm")
1171 (synopsis "XCB utility functions for the X resource manager")
1172 (description
1173 "The XCB util module provides a number of libraries which sit on
1174top of libxcb, the core X protocol library, and some of the extension
1175libraries. These experimental libraries provide convenience functions
1176and interfaces which make the raw X protocol more usable. Some of the
1177libraries also provide client-side code which is not strictly part of
1178the X protocol but which has traditionally been provided by Xlib.
1179
1180XCB util-xrm module provides the following libraries:
1181
1182- xrm: utility functions for the X resource manager.")
1183 (license license:x11)))
01278f16
P
1184
1185(define-public xcalib
1186 (package
1187 (name "xcalib")
1188 (version "0.8")
1189 (source (origin
1190 (method url-fetch)
1191 (uri (string-append "mirror://sourceforge/xcalib/xcalib/" version
1192 "/xcalib-source-" version ".tar.gz"))
1193 (sha256
1194 (base32
1195 "1rh6xb51c5xz926dnn82a2fn643g0sr4a8z66rn6yi7523kjw4ca"))))
1196 (build-system gnu-build-system)
1197 (arguments
1198 '(#:make-flags '("CC=gcc")
1199 #:tests? #f ; No test suite
1200 #:phases (modify-phases %standard-phases
1201 (delete 'configure)
1202 (replace 'install
1203 (lambda* (#:key outputs #:allow-other-keys)
1204 (let* ((out (assoc-ref outputs "out"))
1205 (bin (string-append out "/bin")))
1206 (install-file "xcalib" bin))))
1207 (add-after 'install 'install-doc
1208 (lambda* (#:key outputs #:allow-other-keys)
1209 (let ((doc (string-append(assoc-ref outputs "out")
1210 "/share/doc/xcalib")))
1211 (install-file "README" doc)
1212 ;; Avoid unspecified return value.
1213 #t))))))
1214 (inputs `(("libx11", libx11)
1215 ("libxext", libxext)
1216 ("libxxf86vm", libxxf86vm)))
1217 (synopsis "Tiny monitor calibration loader for XFree86 (or X.org)")
1218 (description "xcalib is a tiny tool to load the content of vcgt-Tags in ICC
1219profiles to the video card's gamma ramp. It does work with most video card
1220drivers except the generic VESA driver. Alter brightness, contrast, RGB, and
1221invert colors on a specific display/screen.")
1222 (home-page "http://xcalib.sourceforge.net/")
1223 (license license:gpl2)))