gnu: perl: Update home page.
[jackhill/guix/guix.git] / gnu / packages / xfce.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
3 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
4 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
5 ;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
6 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
7 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
9 ;;; Copyright © 2017 ng0 <ng0@n0.is>
10 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
12 ;;;
13 ;;; This file is part of GNU Guix.
14 ;;;
15 ;;; GNU Guix is free software; you can redistribute it and/or modify it
16 ;;; under the terms of the GNU General Public License as published by
17 ;;; the Free Software Foundation; either version 3 of the License, or (at
18 ;;; your option) any later version.
19 ;;;
20 ;;; GNU Guix is distributed in the hope that it will be useful, but
21 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;; GNU General Public License for more details.
24 ;;;
25 ;;; You should have received a copy of the GNU General Public License
26 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28 (define-module (gnu packages xfce)
29 #:use-module ((guix licenses) #:hide (freetype))
30 #:use-module (guix packages)
31 #:use-module (guix download)
32 #:use-module (guix gexp)
33 #:use-module (guix utils)
34 #:use-module (guix build-system cmake)
35 #:use-module (guix build-system glib-or-gtk)
36 #:use-module (guix build-system gnu)
37 #:use-module (guix build-system trivial)
38 #:use-module (gnu artwork)
39 #:use-module (gnu packages)
40 #:use-module (gnu packages calendar)
41 #:use-module (gnu packages cdrom)
42 #:use-module (gnu packages pkg-config)
43 #:use-module (gnu packages glib)
44 #:use-module (gnu packages gtk)
45 #:use-module (gnu packages imagemagick)
46 #:use-module (gnu packages inkscape)
47 #:use-module (gnu packages xorg)
48 #:use-module (gnu packages xdisorg)
49 #:use-module (gnu packages web)
50 #:use-module (gnu packages fontutils)
51 #:use-module (gnu packages freedesktop)
52 #:use-module (gnu packages image)
53 #:use-module (gnu packages gnome)
54 #:use-module (gnu packages pdf)
55 #:use-module (gnu packages polkit)
56 #:use-module (gnu packages gstreamer)
57 #:use-module (gnu packages linux)
58 #:use-module (gnu packages photo)
59 #:use-module (gnu packages pcre)
60 #:use-module (gnu packages popt)
61 #:use-module (gnu packages pulseaudio))
62
63 (define-public gtk-xfce-engine
64 (package
65 (name "gtk-xfce-engine")
66 (version "2.10.1")
67 (source (origin
68 (method url-fetch)
69 (uri (string-append "http://archive.xfce.org/src/xfce/"
70 name "/" (version-major+minor version) "/"
71 name "-" version ".tar.bz2"))
72 (sha256
73 (base32
74 "0g86ywkx0ghzhhn96k88p67bbzlm1aqckly85izp07w80l1934ja"))))
75 (build-system gnu-build-system)
76 (native-inputs
77 `(("pkg-config" ,pkg-config)
78 ("intltool" ,intltool)))
79 (inputs `(("gtk+" ,gtk+-2)))
80 (home-page "https://www.xfce.org/")
81 (synopsis "GTK+ theme engine for Xfce")
82 (description
83 "Default GTK+ engine and themes for Xfce Desktop Environment.")
84 (license gpl2+)))
85
86 (define-public libxfce4util
87 (package
88 (name "libxfce4util")
89 (version "4.12.1")
90 (source (origin
91 (method url-fetch)
92 (uri (string-append "http://archive.xfce.org/xfce/"
93 (version-major+minor version)
94 "/src/" name "-" version ".tar.bz2"))
95 (sha256
96 (base32
97 "07c8r3xwx5is298zk77m3r784gmr5y4mh8bbca5zdjqk5vxdwsw7"))))
98 (build-system gnu-build-system)
99 (native-inputs
100 `(("pkg-config" ,pkg-config)
101 ("intltool" ,intltool)))
102 (propagated-inputs `(("glib" ,glib))) ; required by libxfce4util-1.0.pc
103 (home-page "https://www.xfce.org/")
104 (synopsis "Basic utility library for Xfce")
105 (description
106 "A general-purpose utility library with core application support for the
107 Xfce Desktop Environment.")
108 (license lgpl2.0+)))
109
110 (define-public xfconf
111 (package
112 (name "xfconf")
113 (version "4.12.1")
114 (source (origin
115 (method url-fetch)
116 (uri (string-append "https://archive.xfce.org/src/xfce/"
117 name "/" (version-major+minor version) "/"
118 name "-" version ".tar.bz2"))
119 (sha256
120 (base32
121 "0dns190bwb615wy9ma2654sw4vz1d0rcv061zmaalkv9wmj8bx1m"))))
122 (build-system gnu-build-system)
123 (arguments
124 '(#:phases
125 ;; Run check after install phase to test dbus activation.
126 (modify-phases %standard-phases
127 (add-after 'install 'check
128 (lambda _
129 (setenv "HOME" (getenv "TMPDIR")) ; xfconfd requires a writable HOME
130 ;; Run test-suite under a dbus session.
131 (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
132 (string-append %output "/share"))
133 ;; For the missing '/etc/machine-id'.
134 (setenv "DBUS_FATAL_WARNINGS" "0");
135 (invoke "dbus-launch" "make" "check")))
136 (delete 'check))))
137 (native-inputs
138 `(("pkg-config" ,pkg-config)
139 ("intltool" ,intltool)))
140 (propagated-inputs
141 ;; libxfconf-0.pc refers to all these.
142 `(("glib" ,glib)
143 ("dbus" ,dbus)
144 ("dbus-glib" ,dbus-glib)))
145 (inputs
146 `(("libxfce4util" ,libxfce4util)))
147 (home-page "https://www.xfce.org/")
148 (synopsis "Configuration storage and query system for Xfce")
149 (description
150 "Settings daemon for Xfce, implemented as a D-Bus-based configuration
151 storage system.")
152 (license lgpl2.0+)))
153
154 (define-public libxfce4ui
155 (package
156 (name "libxfce4ui")
157 (version "4.12.1")
158 (source (origin
159 (method url-fetch)
160 (uri (string-append "https://archive.xfce.org/src/xfce/"
161 name "/" (version-major+minor version) "/"
162 name "-" version ".tar.bz2"))
163 (sha256
164 (base32
165 "0hzzhiiwmqsrbv17nninhs2x1b8ck0ym85jck2xphx5ypw8rhq9x"))))
166 (build-system gnu-build-system)
167 (native-inputs
168 `(("pkg-config" ,pkg-config)
169 ("intltool" ,intltool)))
170 (propagated-inputs
171 `(("gtk+-3" ,gtk+) ; required by libxfce4ui-2.pc
172 ;; libxfce4kbd-private-2.pc refers to all these.
173 ("libxfce4util" ,libxfce4util)
174 ("xfconf" ,xfconf)))
175 (inputs `(("libsm" ,libsm)
176 ("libice" ,libice)
177 ;; FIXME: required by libxfce4ui-1.pc, so should be propagated,
178 ;; but will lead to a conflict with gtk+.
179 ("gtk+-2" ,gtk+-2)
180 ("startup-notification" ,startup-notification)))
181 (home-page "https://www.xfce.org/")
182 (synopsis "Widgets library for Xfce")
183 (description
184 "Libxfce4ui is the replacement of the old libxfcegui4 library. It is used
185 to share commonly used Xfce widgets among the Xfce applications.")
186 (license lgpl2.0+)))
187
188 (define-public exo
189 (package
190 (name "exo")
191 (version "0.12.5")
192 (source (origin
193 (method url-fetch)
194 (uri (string-append "https://archive.xfce.org/src/xfce/"
195 "exo/" (version-major+minor version) "/"
196 "exo-" version ".tar.bz2"))
197 (sha256
198 (base32
199 "1s23prcgall6r5dpn0qlrdq3zj13p95a5s0l2vflgrka8gb39x78"))))
200 (build-system gnu-build-system)
201 (native-inputs
202 `(("pkg-config" ,pkg-config)
203 ("intltool" ,intltool)))
204 (propagated-inputs
205 ;; exo-1.pc refers to all these.
206 `(("gtk+" ,gtk+-2)
207 ("libxfce4util" ,libxfce4util)))
208 (inputs
209 `(("libxfce4ui" ,libxfce4ui)
210 ("perl-uri" ,perl-uri)))
211 (home-page "https://www.xfce.org/")
212 (synopsis "Extension library for Xfce")
213 (description
214 "An extension library to Xfce. While Xfce comes with quite a few libraries
215 that are targeted at desktop development, libexo is targeted at application
216 development.")
217 ;; Libraries are under LGPLv2+, and programs under GPLv2+.
218 (license (list gpl2+ lgpl2.1+))))
219
220 (define-public garcon
221 (package
222 (name "garcon")
223 (version "0.6.2")
224 (source (origin
225 (method url-fetch)
226 (uri (string-append "https://archive.xfce.org/src/xfce/"
227 "garcon/" (version-major+minor version) "/"
228 "garcon-" version ".tar.bz2"))
229 (sha256
230 (base32
231 "0z64g6f2vwfjzqsrsn05nbcbs8l6y4cfdgxk4k2la3giixj0jzx8"))))
232 (build-system gnu-build-system)
233 (native-inputs
234 `(("pkg-config" ,pkg-config)
235 ("intltool" ,intltool)
236 ("glib:bin" ,glib "bin")))
237 (inputs
238 `(("gtk+" ,gtk+-2)))
239 (propagated-inputs
240 `(("libxfce4ui" ,libxfce4ui))) ; required by garcon-gtk2-1.pc
241 (home-page "https://www.xfce.org/")
242 (synopsis "Implementation of the freedesktop.org menu specification")
243 (description
244 "Garcon is a freedesktop.org compliant menu implementation based on
245 GLib and GIO. It was started as a complete rewrite of the former Xfce menu
246 library called libxfce4menu, which, in contrast to garcon, was lacking menu
247 merging features essential for loading menus modified with menu editors.")
248 (license lgpl2.0+)))
249
250 (define-public tumbler
251 (package
252 (name "tumbler")
253 (version "0.2.4")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "https://archive.xfce.org/src/xfce/"
257 "tumbler/" (version-major+minor version) "/"
258 "tumbler-" version ".tar.bz2"))
259 (sha256
260 (base32
261 "19mnwmcxdhqfqkd9433z8h2y8w49vlc7jw5p5h8j54wz7zhrgx0g"))))
262 (build-system gnu-build-system)
263 (native-inputs
264 `(("pkg-config" ,pkg-config)
265 ("intltool" ,intltool)
266 ("glib:bin" ,glib "bin") ; need glib-genmarshal
267 ("dbus-glib" ,dbus-glib))) ; need dbus-binding-tool
268 (propagated-inputs
269 `(("glib" ,glib))) ; required by tumbler-1.pc
270 (inputs
271 `(("dbus" ,dbus)
272 ("gdk-pixbuf" ,gdk-pixbuf)
273 ("freetype" ,freetype)
274 ("libjpeg" ,libjpeg)
275 ("libgsf" ,libgsf)
276 ("poppler" ,poppler)
277 ("gstreamer" ,gstreamer)))
278 (home-page "https://www.xfce.org/")
279 (synopsis "D-Bus service for applications to request thumbnails")
280 (description
281 "Tumbler is a D-Bus service for applications to request thumbnails for
282 various URI schemes and MIME types. It is an implementation of the thumbnail
283 management D-Bus specification.")
284 (license gpl2+)))
285
286 (define-public xfce4-panel
287 (package
288 (name "xfce4-panel")
289 (version "4.12.2")
290 (source (origin
291 (method url-fetch)
292 (uri (string-append "https://archive.xfce.org/src/xfce/"
293 name "/" (version-major+minor version) "/"
294 name "-" version ".tar.bz2"))
295 (sha256
296 (base32
297 "1s8cvsrgmkmmm84g6mghpj2k4777gm22g5lrsf8pdy5qh6xql1a2"))
298 (patches (search-patches "xfce4-panel-plugins.patch"))))
299 (build-system gnu-build-system)
300 (arguments
301 '(#:configure-flags '("--enable-gtk3")))
302 (native-inputs
303 `(("pkg-config" ,pkg-config)
304 ("intltool" ,intltool)))
305 (propagated-inputs
306 `(("libxfce4util" ,libxfce4util))) ; required by libxfce4panel-1.0.pc
307 (inputs
308 `(("exo" ,exo)
309 ("garcon" ,garcon)
310 ("libwnck" ,libwnck-2)
311 ("libxfce4ui" ,libxfce4ui)))
312 (native-search-paths
313 (list (search-path-specification
314 (variable "X_XFCE4_LIB_DIRS")
315 (files '("lib/xfce4")))))
316 (home-page "https://www.xfce.org/")
317 (synopsis "Xfce desktop panel")
318 (description
319 "Desktop panel for Xfce, which contains program launchers, window buttons,
320 applications menu, workspace switcher and more.")
321 ;; Libraries are under LGPLv2.1+, and programs under GPLv2+.
322 (license (list gpl2+ lgpl2.1+))))
323
324 (define-public xfce4-battery-plugin
325 (package
326 (name "xfce4-battery-plugin")
327 (version "1.1.2")
328 (source (origin
329 (method url-fetch)
330 (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
331 name "/" (version-major+minor version) "/"
332 name "-" version ".tar.bz2"))
333 (sha256
334 (base32
335 "1nypi0zazrcrbbm5vb221yw64zxrk56v4fffkblxlyd9m6gk80fn"))))
336 (build-system gnu-build-system)
337 (native-inputs `(("pkg-config" ,pkg-config)
338 ("intltool" ,intltool)))
339 (inputs `(("glib" ,glib)
340 ("gtk+" ,gtk+-2)
341 ("libxfce4util" ,libxfce4util)
342 ("libxfce4ui" ,libxfce4ui)
343 ("xfce4-panel" ,xfce4-panel)))
344 (home-page
345 "https://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin")
346 (synopsis "Battery monitor panel plugin for Xfce4")
347 (description
348 "A battery monitor panel plugin for Xfce4, compatible with APM and ACPI.")
349 ;; The main plugin code is covered by gpl2+, but the files containing code
350 ;; to read the battery state via ACPI or APM are covered by lgpl2.0+.
351 (license (list gpl2+ lgpl2.0+))))
352
353 (define-public xfce4-clipman-plugin
354 (package
355 (name "xfce4-clipman-plugin")
356 (version "1.4.3")
357 (source (origin
358 (method url-fetch)
359 (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
360 name "/" (version-major+minor version) "/"
361 name "-" version ".tar.bz2"))
362 (sha256
363 (base32
364 "1liacff4wl5mpyf9dzdrfbwxzmhl95y5nsfc0jf5rgalzdgbik99"))))
365 (build-system gnu-build-system)
366 (native-inputs
367 `(("intltool" ,intltool)
368 ("pkg-config" ,pkg-config)))
369 (inputs
370 `(("exo" ,exo)
371 ("libxfce4ui" ,libxfce4ui)
372 ("libxtst" ,libxtst)
373 ("xfce4-panel" ,xfce4-panel)))
374 (home-page
375 "https://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin")
376 (synopsis "Clipboard manager for Xfce")
377 (description
378 "Clipman is a clipboard manager for Xfce. It keeps the clipboard contents
379 around while it is usually lost when you close an application. It is able to
380 handle text and images, and has a feature to execute actions on specific text by
381 matching them against regular expressions.")
382 (license (list gpl2+))))
383
384 (define-public xfce4-pulseaudio-plugin
385 (package
386 (name "xfce4-pulseaudio-plugin")
387 (version "0.4.1")
388 (source (origin
389 (method url-fetch)
390 (uri (string-append "https://archive.xfce.org/src/panel-plugins/"
391 name "/" (version-major+minor version) "/"
392 name "-" version ".tar.bz2"))
393 (sha256
394 (base32
395 "1w29y0a066y8as12xrkbfqcn7dpdsvx97idzw7028gmcvca87a3c"))))
396 (build-system gnu-build-system)
397 (native-inputs
398 `(("intltool" ,intltool)
399 ("pkg-config" ,pkg-config)))
400 (inputs
401 `(("exo" ,exo)
402 ("libnotify" ,libnotify)
403 ("libxfce4ui" ,libxfce4ui)
404 ("pulseaudio" ,pulseaudio)
405 ("xfce4-panel" ,xfce4-panel)))
406 (home-page "https://git.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/")
407 (synopsis "PulseAudio panel plugin for Xfce")
408 (description
409 "Xfce PulseAudio plugin is a plugin for the Xfce panel which provides a
410 convenient way to adjust the audio volume of the PulseAudio sound system and
411 to an auto mixer tool like pavucontrol. It can optionally handle multimedia
412 keys for controlling the audio volume.")
413 (license gpl2+)))
414
415 (define-public xfce4-whiskermenu-plugin
416 (package
417 (name "xfce4-whiskermenu-plugin")
418 (version "2.3.1")
419 (source (origin
420 (method url-fetch)
421 (uri (string-append "http://archive.xfce.org/src/panel-plugins/"
422 name "/" (version-major+minor version) "/"
423 name "-" version ".tar.bz2"))
424 (sha256
425 (base32
426 "1cnas2x7xi53v6ylq44040narhzd828dc0ysz8yk3qn2mmvp5yr2"))))
427 (build-system cmake-build-system)
428 (native-inputs
429 `(("pkg-config" ,pkg-config)
430 ("intltool" ,intltool)))
431 (inputs
432 `(("xfce4-panel" ,xfce4-panel)
433 ("garcon" ,garcon)
434 ("exo" ,exo)
435 ("gtk+" ,gtk+-2)))
436 (arguments
437 `(#:tests? #f)) ; no tests
438 (home-page "https://goodies.xfce.org/projects/panel-plugins/xfce4-whiskermenu-plugin")
439 (synopsis "Application menu panel plugin for Xfce")
440 (description
441 "This package provides an alternative to the default application menu
442 panel plugin for Xfce4. It uses separate sections to display categories and
443 applications, and includes a search bar to search for applications.")
444 ;; The main plugin code is covered by gpl2, but files in panel-plugin directory
445 ;; are covered by gpl2+. The SVG icon is covered by gpl2.
446 (license (list gpl2 gpl2+))))
447
448 (define-public xfce4-xkb-plugin
449 (package
450 (name "xfce4-xkb-plugin")
451 (version "0.7.1")
452 (source (origin
453 (method url-fetch)
454 (uri (string-append "http://archive.xfce.org/src/panel-plugins/"
455 name "/" (version-major+minor version) "/"
456 name "-" version ".tar.bz2"))
457 (sha256
458 (base32
459 "10g65j5ia389ahhn3b9hr52ghpp0817fk0m60rfrv4wrzqrjxzk1"))))
460 (build-system gnu-build-system)
461 (native-inputs
462 `(("intltool" ,intltool)
463 ("pkg-config" ,pkg-config)))
464 (inputs
465 `(("garcon" ,garcon)
466 ("librsvg" ,librsvg)
467 ("libwnck" ,libwnck-2)
468 ("libx11" ,libx11)
469 ("libxfce4ui" ,libxfce4ui)
470 ("libxklavier" ,libxklavier)
471 ("xfce4-panel" ,xfce4-panel)))
472 (home-page "https://git.xfce.org/panel-plugins/xfce4-xkb-plugin/")
473 (synopsis "XKB layout switching panel plug-in for Xfce")
474 (description
475 "Xfce XKB plugin makes it possible to set up and use multiple
476 keyboard layouts.
477
478 One can choose the keyboard model, what key combination to
479 use to switch between the layouts, the actual keyboard layouts,
480 the way in which the current layout is being displayed (country
481 flag image or text) and the layout policy, which is whether to
482 store the layout globally (for all windows), per application or
483 per window.")
484 (license bsd-2)))
485
486 (define-public xfce4-appfinder
487 (package
488 (name "xfce4-appfinder")
489 (version "4.12.0")
490 (source (origin
491 (method url-fetch)
492 (uri (string-append "http://archive.xfce.org/xfce/"
493 (version-major+minor version)
494 "/src/" name "-" version ".tar.bz2"))
495 (sha256
496 (base32
497 "0ry5hin8xhgnkmm9vs7jq8blk1cnbyr0s18nm1j6nsm7360abm1a"))))
498 (build-system gnu-build-system)
499 (native-inputs
500 `(("pkg-config" ,pkg-config)
501 ("intltool" ,intltool)))
502 (inputs
503 `(("garcon" ,garcon)
504 ("gtk+" ,gtk+-2)
505 ("libxfce4ui" ,libxfce4ui)))
506 (home-page "https://www.xfce.org/")
507 (synopsis "Xfce application finder")
508 (description
509 "Application finder for Xfce, it will show the applications installed on
510 your system in categories, so you can quickly find and launch them.")
511 (license gpl2+)))
512
513 (define-public xfce4-session
514 (package
515 (name "xfce4-session")
516 (version "4.12.1")
517 (source (origin
518 (method url-fetch)
519 (uri (string-append "https://archive.xfce.org/src/xfce/"
520 name "/" (version-major+minor version) "/"
521 name "-" version ".tar.bz2"))
522 (sha256
523 (base32
524 "1z88klls3j161n5snpamz4l3p4823q4h87wdnqikczxgs2ig5mwp"))
525 (patches
526 ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282
527 (search-patches "xfce4-session-fix-xflock4.patch"))
528 (modules '((guix build utils)))
529 (snippet
530 '(begin
531 (substitute* "xfsm-shutdown-helper/main.c"
532 (("/sbin/shutdown -h now") "halt")
533 (("/sbin/shutdown -r now") "restart")
534 (("/usr/sbin/pm-suspend") "pm-suspend")
535 (("/usr/sbin/pm-hibernate") "pm-hibernate"))
536 #t))))
537 (build-system gnu-build-system)
538 (arguments
539 '(#:configure-flags
540 (list (string-append "--with-xsession-prefix=" %output))
541 ;; Disable icon cache update.
542 #:make-flags
543 '("gtk_update_icon_cache=true")))
544 (native-inputs
545 `(("pkg-config" ,pkg-config)
546 ("intltool" ,intltool)))
547 (inputs
548 `(("iceauth" ,iceauth)
549 ("upower" ,upower)
550 ("polkit" ,polkit)
551 ("libsm" ,libsm)
552 ("libwnck" ,libwnck-2)
553 ("libxfce4ui" ,libxfce4ui)))
554 (home-page "https://www.xfce.org/")
555 (synopsis "Xfce session manager")
556 (description
557 "Session manager for Xfce, it will restore your session on startup and
558 allows you to shutdown the computer from Xfce.")
559 (license gpl2+)))
560
561 (define-public xfce4-settings
562 (package
563 (name "xfce4-settings")
564 (version "4.12.4")
565 (source (origin
566 (method url-fetch)
567 (uri (string-append "http://archive.xfce.org/src/xfce/"
568 name "/" (version-major+minor version) "/"
569 name "-" version ".tar.bz2"))
570 (sha256
571 (base32
572 "16vgidhhc19dz0p0i6fp5iiwxd53ky143j6h14a9b7mz92nlr872"))
573 (patches (search-patches "xfce4-settings-defaults.patch"))))
574 (build-system gnu-build-system)
575 (native-inputs
576 `(("pkg-config" ,pkg-config)
577 ("intltool" ,intltool)))
578 (inputs
579 `(("exo" ,exo)
580 ("garcon" ,garcon)
581 ("libnotify" ,libnotify)
582 ("libxcursor" ,libxcursor)
583 ("libxi" ,libxi)
584 ("libxklavier" ,libxklavier)
585 ("libxrandr" ,libxrandr)
586 ("libxfce4ui" ,libxfce4ui)
587 ("upower" ,upower)
588 ("xf86-input-libinput" ,xf86-input-libinput)))
589 (home-page "https://www.xfce.org/")
590 (synopsis "Xfce settings manager")
591 (description
592 "Settings manager for Xfce, it can control various aspects of the desktop
593 like appearance, display, keyboard and mouse settings.")
594 (license gpl2+)))
595
596 (define-public thunar
597 (package
598 (name "thunar")
599 (version "1.8.6")
600 (source (origin
601 (method url-fetch)
602 (uri (string-append "http://archive.xfce.org/src/xfce/"
603 "thunar/" (version-major+minor version) "/"
604 "Thunar-" version ".tar.bz2"))
605 (sha256
606 (base32
607 "0apg70dwkh8q89ybzhj4q2gp4yxiybwxfzpbvx0nj0rxis1gprf0"))))
608 (build-system gnu-build-system)
609 (native-inputs
610 `(("pkg-config" ,pkg-config)
611 ("intltool" ,intltool)))
612 (inputs
613 `(("exo" ,exo)
614 ("libexif" ,libexif)
615 ("libgudev" ,libgudev)
616 ("libnotify" ,libnotify)
617 ("libxfce4ui" ,libxfce4ui)
618 ("pcre" ,pcre)
619 ("xfce4-panel" ,xfce4-panel)
620 ("startup-notification" ,startup-notification)))
621 (home-page "https://www.xfce.org/")
622 (synopsis "Xfce file manager")
623 (description
624 "A modern file manager for graphical desktop, aiming to be easy-to-use and
625 fast.")
626 (license gpl2+)))
627
628 (define-public thunar-volman
629 (package
630 (name "thunar-volman")
631 (version "0.8.1")
632 (source (origin
633 (method url-fetch)
634 (uri (string-append "http://archive.xfce.org/xfce/4.12/src/"
635 name "-" version ".tar.bz2"))
636 (sha256
637 (base32
638 "1gf259n1v3y23n1zlkhyr6r0i8j59rnl1cmxvxj6la9cwdfbn22s"))))
639 (build-system gnu-build-system)
640 (native-inputs
641 `(("pkg-config" ,pkg-config)
642 ("intltool" ,intltool)))
643 (inputs
644 `(("exo" ,exo)
645 ("libgudev" ,libgudev)
646 ("libnotify" ,libnotify)
647 ("libxfce4ui" ,libxfce4ui)))
648 (home-page "https://www.xfce.org/")
649 (synopsis "Removable media manager for Thunar")
650 (description
651 "Thunar-volman is an extension for the Thunar File Manager, which enables
652 automatic management of removable drives and media. For example, if
653 thunar-volman is installed and configured properly, and you plug in your
654 digital camera, it will automatically spawn your preferred photo application
655 and import the new pictures from your camera.")
656 (license gpl2+)))
657
658 (define-public xfwm4
659 (package
660 (name "xfwm4")
661 (version "4.12.5")
662 (source (origin
663 (method url-fetch)
664 (uri (string-append "https://archive.xfce.org/src/xfce/"
665 name "/" (version-major+minor version) "/"
666 name "-" version ".tar.bz2"))
667 (sha256
668 (base32
669 "1jnav0wcqlswl2v7nh61big9czg5hmnyvrvm6812sv362qic0xbp"))))
670 (build-system gnu-build-system)
671 (native-inputs
672 `(("pkg-config" ,pkg-config)
673 ("intltool" ,intltool)))
674 (inputs
675 `(("libdrm" ,libdrm)
676 ("libwnck" ,libwnck-2)
677 ("libxcomposite" ,libxcomposite)
678 ("libxdamage" ,libxdamage)
679 ("libxfce4ui" ,libxfce4ui)
680 ("libxrandr" ,libxrandr)))
681 (home-page "https://www.xfce.org/")
682 (synopsis "Xfce window manager")
683 (description
684 "Window manager for Xfce, it handles the placement of windows
685 on the screen.")
686 (license gpl2+)))
687
688 (define-public xfdesktop
689 (package
690 (name "xfdesktop")
691 (version "4.12.4")
692 (source (origin
693 (method url-fetch)
694 (uri (string-append "https://archive.xfce.org/src/xfce/"
695 name "/" (version-major+minor version) "/"
696 name "-" version ".tar.bz2"))
697 (sha256
698 (base32
699 "1jzi851arljq5lza9inyq4ss513l62lbzbfm64a7x4320m8kb2h9"))
700 (modules '((guix build utils)))
701 (snippet
702 #~(begin
703 (copy-file #$(file-append %artwork-repository "/logo/Guix.svg")
704 "backgrounds/guix-logo.svg")
705 #t))))
706 (build-system gnu-build-system)
707 (arguments
708 `(#:phases (modify-phases %standard-phases
709 (add-before 'configure 'prepare-background-image
710 (lambda _
711 ;; Stick a Guix logo in the background image. XXX: It
712 ;; has to go to the center because the image might be
713 ;; truncated on the edges. :-/
714 (invoke "inkscape" "--export-dpi=120"
715 "--export-png=/tmp/guix.png"
716 "backgrounds/guix-logo.svg")
717 (for-each (lambda (image)
718 (invoke "composite" "-gravity" "center"
719 "/tmp/guix.png" image
720 "/tmp/final.jpg")
721 (copy-file "/tmp/final.jpg" image))
722 '(;; "backgrounds/xfce-blue.jpg"
723 "backgrounds/xfce-teal.jpg"))
724 #t)))
725
726 #:disallowed-references (,inkscape ,imagemagick)))
727 (native-inputs
728 `(("pkg-config" ,pkg-config)
729 ("intltool" ,intltool)
730
731 ("inkscape" ,inkscape)
732 ("imagemagick" ,imagemagick)))
733 (inputs
734 `(("exo" ,exo)
735 ("garcon" ,garcon)
736 ("libnotify" ,libnotify)
737 ("libwnck" ,libwnck-2)
738 ("libxfce4ui" ,libxfce4ui)
739 ("thunar" ,thunar)))
740 (home-page "https://www.xfce.org/")
741 (synopsis "Xfce desktop manager")
742 (description
743 "Desktop manager for Xfce, it sets the background color or image with
744 optional application menu or icons for minimized applications or launchers,
745 devices and folders.")
746 (license gpl2+)))
747
748 (define-public xfce4-terminal
749 (package
750 (name "xfce4-terminal")
751 (version "0.8.7.4")
752 (source (origin
753 (method url-fetch)
754 (uri (string-append "https://archive.xfce.org/src/apps/" name "/"
755 (version-major+minor version) "/"
756 name "-" version ".tar.bz2"))
757 (sha256
758 (base32
759 "1as2dh5ccmv3hdvsbxm4b0xhmv2ky2q18zxxrzr988x79npri3x8"))))
760 (build-system gnu-build-system)
761 (native-inputs
762 `(("pkg-config" ,pkg-config)
763 ("intltool" ,intltool)))
764 (inputs
765 `(("libxfce4ui" ,libxfce4ui)
766 ("vte" ,vte)))
767 (home-page "https://www.xfce.org/")
768 (synopsis "Xfce terminal emulator")
769 (description
770 "A lightweight and easy to use terminal emulator for Xfce. Features
771 include a simple configuration interface, the ability to use multiple tabs
772 with terminals within a single window, the possibility to have a
773 pseudo-transparent terminal background, and a compact mode (where both the
774 menubar and the window decorations are hidden) that helps you to save space
775 on your desktop.")
776 (license gpl2+)))
777
778 (define-public xfce
779 (package
780 (name "xfce")
781 (version (package-version xfce4-session))
782 (source #f)
783 (build-system trivial-build-system)
784 (arguments
785 '(#:modules ((guix build union))
786 #:builder
787 (begin
788 (use-modules (ice-9 match)
789 (guix build union))
790 (match %build-inputs
791 (((names . directories) ...)
792 (union-build (assoc-ref %outputs "out")
793 directories)
794 #t)))))
795 (inputs
796 `(("exo" ,exo)
797 ("garcon" ,garcon)
798 ("gnome-icon-theme" ,gnome-icon-theme)
799 ("gtk-xfce-engine" ,gtk-xfce-engine)
800 ("hicolor-icon-theme" ,hicolor-icon-theme)
801 ("ristretto" ,ristretto)
802 ("shared-mime-info" ,shared-mime-info)
803 ("thunar" ,thunar)
804 ("thunar-volman" ,thunar-volman)
805 ("tumlber" ,tumbler)
806 ("xfce4-appfinder" ,xfce4-appfinder)
807 ("xfce4-panel" ,xfce4-panel)
808 ("xfce4-power-manager" ,xfce4-power-manager)
809 ("xfce4-session" ,xfce4-session)
810 ("xfce4-settings" ,xfce4-settings)
811 ("xfce4-terminal" ,xfce4-terminal)
812 ("xfconf" ,xfconf)
813 ("xfdesktop" ,xfdesktop)
814 ("xfwm4" ,xfwm4)
815 ;; Panel plugins.
816 ("xfce4-battery-plugin" ,xfce4-battery-plugin)
817 ("xfce4-clipman-plugin" ,xfce4-clipman-plugin)
818 ("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin)
819 ("xfce4-xkb-plugin" ,xfce4-xkb-plugin)))
820 (native-search-paths
821 ;; For finding panel plugins.
822 (package-native-search-paths xfce4-panel))
823 (home-page "https://www.xfce.org/")
824 (synopsis "Desktop environment (meta-package)")
825 (description
826 "Xfce is a lightweight desktop environment. It aims to be fast and low on
827 system resources, while still being visually appealing and user friendly.")
828 (license gpl2+)))
829
830 (define-public xfce4-power-manager
831 (package
832 (name "xfce4-power-manager")
833 (version "1.6.1")
834 (source (origin
835 (method url-fetch)
836 (uri (string-append "https://archive.xfce.org/src/xfce/"
837 name "/" (version-major+minor version) "/"
838 name "-" version ".tar.bz2"))
839 (sha256
840 (base32
841 "0sv5927q8jxvdfx7b06f8s7qyq3qa1nqn0b8c1b9bf234d2jba0y"))))
842 (build-system gnu-build-system)
843 (arguments
844 '(#:configure-flags '("--enable-gtk3")))
845 (native-inputs
846 `(("pkg-config" ,pkg-config)
847 ("intltool" ,intltool)))
848 (inputs
849 `(("lbxrandr" ,libxrandr)
850 ("gtk+" ,gtk+-2)
851 ("upower" ,upower)
852 ("libnotify" ,libnotify)
853 ("libxfce4ui" ,libxfce4ui)))
854 (home-page "https://www.xfce.org/")
855 (synopsis "Xfce Power Manager")
856 (description
857 "This is a power manager for the Xfce desktop. It manages the power
858 sources on the computer and the devices that can be controlled to reduce their
859 power consumption (such as LCD brightness level, monitor sleep, CPU frequency
860 scaling, etc). In addition, xfce4-power-manager provides a set of
861 freedesktop-compliant DBus interfaces to inform other applications about current
862 power level so that they can adjust their power consumption, and it provides the
863 inhibit interface which allows applications to prevent automatic sleep.")
864 (license gpl2+)))
865
866 (define-public ristretto
867 (package
868 (name "ristretto")
869 (version "0.8.4")
870 (source (origin
871 (method url-fetch)
872 (uri (string-append "http://archive.xfce.org/src/apps/ristretto/"
873 (version-major+minor version) "/"
874 "ristretto-" version ".tar.bz2"))
875 (sha256
876 (base32
877 "18nf01djwnbjc91bdlv3p0h6pwcq1kfnjgp6yaxhxv4kdi9f82rs"))))
878 (build-system gnu-build-system)
879 (native-inputs
880 `(("intltool" ,intltool)
881 ("pkg-config" ,pkg-config)))
882 (inputs
883 `(("desktop-file-utils" ,desktop-file-utils)
884 ("gtk+" ,gtk+-2)
885 ("libexif" ,libexif)
886 ("libxfce4ui" ,libxfce4ui)
887 ("librsvg" ,librsvg)
888 ("tumbler" ,tumbler)))
889 (home-page "https://docs.xfce.org/apps/ristretto/start")
890 (synopsis "Fast and lightweight picture-viewer")
891 (description
892 "The Ristretto Image Viewer is an application that can be used to view,
893 and scroll through images. It can be used to run a slideshow of images, open
894 images with other applications like an image-editor or configure an image as
895 the desktop wallpaper.")
896 (license gpl2+)))
897
898 (define-public xfce4-taskmanager
899 (package
900 (name "xfce4-taskmanager")
901 (version "1.2.2")
902 (source (origin
903 (method url-fetch)
904 (uri (string-append "https://archive.xfce.org/src/apps/"
905 name "/" (version-major+minor version) "/"
906 name "-" version ".tar.bz2"))
907 (sha256
908 (base32
909 "04qflazmdrj4ys4r54yg4s5pqcjgk02idrjsls395zd4374636p4"))))
910 (build-system gnu-build-system)
911 (native-inputs
912 `(("intltool" ,intltool)
913 ("pkg-config" ,pkg-config)))
914 (inputs
915 `(("libwnck" ,libwnck-2)
916 ("libxmu" ,libxmu)
917 ("gtk+" ,gtk+)
918 ;; FIXME: Remove libxext and libxt when libxmu propagates them.
919 ("libxext" ,libxext)
920 ("libxt" ,libxt)))
921 (home-page "https://goodies.xfce.org/projects/applications/xfce4-taskmanager")
922 (synopsis "Easy to use task manager")
923 (description
924 "This is a task manager for the Xfce desktop. It displays the CPU and
925 memory usage graphically, and it can display processes as a tree.")
926 (license gpl2+)))
927
928 (define-public orage
929 (package
930 (name "orage")
931 (version "4.12.1")
932 (source (origin
933 (method url-fetch)
934 (uri (string-append "http://archive.xfce.org/src/apps/"
935 name "/" (version-major+minor version) "/"
936 name "-" version ".tar.bz2"))
937 (sha256
938 (base32
939 "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w"))))
940 (build-system gnu-build-system)
941 (native-inputs
942 `(("intltool" ,intltool)
943 ("pkg-config" ,pkg-config)))
944 (inputs
945 `(("gtk+" ,gtk+-2)
946 ("libical" ,libical)
947 ("libnotify" ,libnotify)
948 ("popt" ,popt)
949 ("xfce4-panel" ,xfce4-panel)))
950 (home-page "https://www.xfce.org/projects/")
951 (synopsis "Simple calendar application with reminders")
952 (description
953 "This is a simple calendar application for the Xfce desktop. Orage has
954 alarms and uses the iCalendar format, making it compatible with many other
955 calendar applications. It also includes a panel clock plugin and an
956 international clock application capable of simultaneously showing clocks from
957 several different time zones.")
958 (license gpl2+)))
959
960 (define-public xfce4-notifyd
961 (package
962 (name "xfce4-notifyd")
963 (version "0.4.3")
964 (source (origin
965 (method url-fetch)
966 (uri (string-append "https://archive.xfce.org/src/apps/"
967 name "/" (version-major+minor version) "/"
968 name "-" version ".tar.bz2"))
969 (sha256
970 (base32
971 "1h7avj149cafj9dabiza22y14i66vxgp5qj0wxx8i97w9h4dlg99"))))
972 (build-system glib-or-gtk-build-system)
973 (native-inputs
974 `(("intltool" ,intltool)
975 ("pkg-config" ,pkg-config)))
976 (inputs
977 `(("libxfce4ui" ,libxfce4ui)
978 ("libnotify" ,libnotify)
979 ("xfce4-panel" ,xfce4-panel)))
980 (home-page "https://goodies.xfce.org/projects/applications/xfce4-notifyd")
981 (synopsis "Show notification bubbles on Xfce")
982 (description
983 "The Xfce Notify Daemon (xfce4-notifyd for short) is a smallish program
984 that implements the “server-side” portion of the Freedesktop desktop
985 notifications specification. Applications that wish to pop up a notification
986 bubble in a standard way can implicitly make use of xfce4-notifyd to do so by
987 sending standard messages over D-Bus using the
988 @code{org.freedesktop.Notifications} interface.")
989 (license gpl2)))
990
991 (define-public xfburn
992 (package
993 (name "xfburn")
994 (version "0.5.5")
995 (source (origin
996 (method url-fetch)
997 (uri (string-append "http://archive.xfce.org/src/apps/xfburn/"
998 (version-major+minor version) "/"
999 name "-" version ".tar.bz2"))
1000 (sha256
1001 (base32
1002 "1qdd8prnsfilsprg36p95cz3z50ffr9kgvka4d5pm260lsl3l5xa"))))
1003 (build-system gnu-build-system)
1004 (native-inputs
1005 `(("intltool" ,intltool)
1006 ("pkg-config" ,pkg-config)))
1007 (inputs
1008 `(("exo" ,exo)
1009 ("gstreamer" ,gstreamer)
1010 ("gst-plugins-base" ,gst-plugins-base)
1011 ("gst-plugins-good" ,gst-plugins-good)
1012 ("gst-plugins-ugly" ,gst-plugins-ugly)
1013 ("glib" ,glib)
1014 ("gtk+" ,gtk+-2)
1015 ("libburn" ,libburn)
1016 ("libisofs" ,libisofs)
1017 ("libxfce4ui" ,libxfce4ui)))
1018 (home-page "https://goodies.xfce.org/projects/applications/xfburn")
1019 (synopsis "GTK+ based CD, DVD and Blu-ray burning application")
1020 (description
1021 "Xfburn is a simple CD, DVD, and Blu-ray burning tool based on
1022 the libburnia libraries. It can blank CD/DVD/BD(-RW)s, burn and
1023 create iso images, audio CDs, as well as burn personal compositions
1024 of data to either CD/DVD/BD.")
1025 (license gpl2+)))