xfce.scm 35 KB

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