gnu: ccache: Update to 3.2.5.
[jackhill/guix/guix.git] / gnu / packages / xfce.scm
index bdb5235..5639f1d 100644 (file)
@@ -1,6 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
+;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,8 +26,9 @@
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages calendar)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages pdf)
+  #:use-module (gnu packages polkit)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages pulseaudio))
 
 (define-public gtk-xfce-engine
@@ -111,6 +117,8 @@ Xfce Desktop Environment.")
           ;; Run test-suite under a dbus session.
           (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service
                   (string-append %output "/share"))
+          ;; For the missing '/etc/machine-id'.
+          (setenv "DBUS_FATAL_WARNINGS" "0");
           (zero? (system* "dbus-launch" "make" "check")))
         (alist-delete 'check %standard-phases))))
     (native-inputs
@@ -267,7 +275,7 @@ management D-Bus specification.")
               (sha256
                (base32
                 "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih"))
-              (patches (list (search-patch "xfce4-panel-plugins.patch")))))
+              (patches (search-patches "xfce4-panel-plugins.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-gtk3")))
@@ -278,8 +286,8 @@ management D-Bus specification.")
      `(("libxfce4util" ,libxfce4util))) ; required by libxfce4panel-1.0.pc
     (inputs
      `(("exo" ,exo)
-       ("garcon"garcon)
-       ("libwnck" ,libwnck-1)
+       ("garcon" ,garcon)
+       ("libwnck" ,libwnck-2)
        ("libxfce4ui" ,libxfce4ui)))
     (native-search-paths
      (list (search-path-specification
@@ -384,6 +392,44 @@ to an auto mixer tool like pavucontrol.  It can optionally handle multimedia
 keys for controlling the audio volume.")
     (license gpl2+)))
 
+(define-public xfce4-xkb-plugin
+  (package
+    (name "xfce4-xkb-plugin")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/src/panel-plugins/"
+                                  name "/" (version-major+minor version) "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "10g65j5ia389ahhn3b9hr52ghpp0817fk0m60rfrv4wrzqrjxzk1"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("garcon" ,garcon)
+       ("librsvg" ,librsvg)
+       ("libwnck" ,libwnck-2)
+       ("libx11" ,libx11)
+       ("libxfce4ui" ,libxfce4ui)
+       ("libxklavier" ,libxklavier)
+       ("xfce4-panel" ,xfce4-panel)))
+    (home-page "http://git.xfce.org/panel-plugins/xfce4-xkb-plugin/")
+    (synopsis "XKB layout switching panel plug-in for Xfce")
+    (description
+     "Xfce XKB plugin makes it possible to set up and use multiple
+keyboard layouts.
+
+One can choose the keyboard model, what key combination to
+use to switch between the layouts, the actual keyboard layouts,
+the way in which the current layout is being displayed (country
+flag image or text) and the layout policy, which is whether to
+store the layout globally (for all windows), per application or
+per window.")
+    (license bsd-2)))
+
 (define-public xfce4-appfinder
   (package
     (name "xfce4-appfinder")
@@ -421,7 +467,19 @@ your system in categories, so you can quickly find and launch them.")
                                   "/src/" name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38"))))
+                "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38"))
+              (patches
+               ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282
+               (search-patches "xfce4-session-fix-xflock4.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "xfsm-shutdown-helper/main.c"
+                    (("/sbin/shutdown -h now")  "halt")
+                    (("/sbin/shutdown -r now")  "restart")
+                    (("/usr/sbin/pm-suspend")   "pm-suspend")
+                    (("/usr/sbin/pm-hibernate") "pm-hibernate"))
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -431,8 +489,10 @@ your system in categories, so you can quickly find and launch them.")
        ("intltool" ,intltool)))
     (inputs
      `(("iceauth" ,iceauth)
+       ("upower" ,upower)
+       ("polkit" ,polkit)
        ("libsm" ,libsm)
-       ("libwnck" ,libwnck-1)
+       ("libwnck" ,libwnck-2)
        ("libxfce4ui" ,libxfce4ui)))
     (home-page "http://www.xfce.org/")
     (synopsis "Xfce session manager")
@@ -452,7 +512,8 @@ allows you to shutdown the computer from Xfce.")
                                   "/src/" name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))))
+                "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))
+              (patches (search-patches "xfce4-settings-defaults.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -461,7 +522,7 @@ allows you to shutdown the computer from Xfce.")
      `(("exo" ,exo)
        ("garcon" ,garcon)
        ("libnotify" ,libnotify)
-       ("libxcursor"libxcursor)
+       ("libxcursor" ,libxcursor)
        ("libxi" ,libxi)
        ("libxklavier" ,libxklavier)
        ("libxrandr" ,libxrandr)
@@ -554,7 +615,7 @@ and import the new pictures from your camera.")
        ("intltool" ,intltool)))
     (inputs
      `(("libdrm" ,libdrm)
-       ("libwnck" ,libwnck-1)
+       ("libwnck" ,libwnck-2)
        ("libxcomposite" ,libxcomposite)
        ("libxdamage" ,libxdamage)
        ("libxfce4ui" ,libxfce4ui)
@@ -586,7 +647,7 @@ on the screen.")
      `(("exo" ,exo)
        ("garcon" ,garcon)
        ("libnotify" ,libnotify)
-       ("libwnck" ,libwnck-1)
+       ("libwnck" ,libwnck-2)
        ("libxfce4ui" ,libxfce4ui)
        ("thunar" ,thunar)))
     (home-page "http://www.xfce.org/")
@@ -632,52 +693,159 @@ on your desktop.")
     (name "xfce")
     (version (package-version xfce4-session))
     (source #f)
-    (build-system glib-or-gtk-build-system)
-    (arguments
-     '(#:modules ((guix build gnu-build-system)
-                  (guix build glib-or-gtk-build-system)
-                  (guix build utils)
-                  (srfi srfi-26))
-       #:phases
-       (alist-replace
-        'install
-        (lambda* (#:key outputs #:allow-other-keys)
-          (let* ((out  (assoc-ref outputs "out"))
-                 (bin  (string-append out "/bin"))
-                 (prog (string-append bin "/startxfce4")))
-            (mkdir-p bin)
-            (symlink (string-append
-                      (assoc-ref %build-inputs "xfce4-session")
-                      "/bin/startxfce4")
-                     prog)
-            (wrap-program prog
-              ;; For xfce4-panel plugins.
-              `("X_XFCE4_LIB_DIRS" = ,(list (getenv "X_XFCE4_LIB_DIRS"))))))
-        (map (cut assq <> %standard-phases)
-             '(set-paths install glib-or-gtk-wrap)))))
+    (build-system trivial-build-system)
+    (arguments '(#:builder (mkdir %output)))
     (propagated-inputs
      `(("exo"                  ,exo)
        ("garcon"               ,garcon)
        ("gnome-icon-theme"     ,gnome-icon-theme)
        ("gtk-xfce-engine"      ,gtk-xfce-engine)
        ("hicolor-icon-theme"   ,hicolor-icon-theme)
+       ("ristretto"            ,ristretto)
        ("shared-mime-info"     ,shared-mime-info)
        ("thunar"               ,thunar)
        ("thunar-volman"        ,thunar-volman)
        ("tumlber"              ,tumbler)
        ("xfce4-appfinder"      ,xfce4-appfinder)
-       ("xfce4-battery-plugin" ,xfce4-battery-plugin)
-       ("xfce4-clipman-plugin" ,xfce4-clipman-plugin)
        ("xfce4-panel"          ,xfce4-panel)
+       ("xfce4-power-manager"  ,xfce4-power-manager)
        ("xfce4-session"        ,xfce4-session)
        ("xfce4-settings"       ,xfce4-settings)
        ("xfce4-terminal"       ,xfce4-terminal)
        ("xfconf"               ,xfconf)
        ("xfdesktop"            ,xfdesktop)
-       ("xfwm4"                ,xfwm4)))
+       ("xfwm4"                ,xfwm4)
+       ;; Panel plugins.
+       ("xfce4-battery-plugin"    ,xfce4-battery-plugin)
+       ("xfce4-clipman-plugin"    ,xfce4-clipman-plugin)
+       ("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin)
+       ("xfce4-xkb-plugin" ,xfce4-xkb-plugin)))
     (home-page "http://www.xfce.org/")
     (synopsis "Desktop environment (meta-package)")
     (description
      "Xfce is a lightweight desktop environment.  It aims to be fast and low on
 system resources, while still being visually appealing and user friendly.")
     (license gpl2+)))
+
+(define-public xfce4-power-manager
+  (package
+    (name "xfce4-power-manager")
+    (version "1.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/xfce/4.12"
+                                  "/src/" name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "04909sfc2nrj2wg9cw6y9y2r9yrp3l3vc201sy1gaiap67fi33h1"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags '("--enable-gtk3")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)))
+    (inputs
+     `(("lbxrandr" ,libxrandr)
+       ("upower" ,upower)
+       ("libnotify" ,libnotify)
+       ("libxfce4ui" ,libxfce4ui)))
+    (home-page "http://www.xfce.org/")
+    (synopsis "Xfce Power Manager")
+    (description
+     "This is a power manager for the Xfce desktop.  It manages the power
+sources on the computer and the devices that can be controlled to reduce their
+power consumption (such as LCD brightness level, monitor sleep, CPU frequency
+scaling, etc).  In addition, xfce4-power-manager provides a set of
+freedesktop-compliant DBus interfaces to inform other applications about current
+power level so that they can adjust their power consumption, and it provides the
+inhibit interface which allows applications to prevent automatic sleep.")
+    (license gpl2+)))
+
+(define-public ristretto
+  (package
+    (name "ristretto")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/src/apps/ristretto/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0a7kwhx51fd2kqh7l7kp13wcn39d2fjkwnn9rfd1k9ydrqj56qki"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("libexif" ,libexif)
+       ("libxfce4ui" ,libxfce4ui)
+       ("librsvg" ,librsvg)
+       ("tumbler" ,tumbler)))
+    (home-page "http://docs.xfce.org/apps/ristretto/start")
+    (synopsis "Fast and lightweight picture-viewer")
+    (description
+     "The Ristretto Image Viewer is an application that can be used to view,
+and scroll through images.  It can be used to run a slideshow of images, open
+images with other applications like an image-editor or configure an image as
+the desktop wallpaper.")
+    (license gpl2+)))
+
+(define-public xfce4-taskmanager
+  (package
+    (name "xfce4-taskmanager")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/src/apps/"
+                                  name "/" (version-major+minor version) "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1jwywmkkkmz7406m1jq40w6apiav25cznafhigbgpjv6z5hv27if"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libwnck" ,libwnck-2)
+       ("gtk+" ,gtk+-2)))
+    (home-page "http://goodies.xfce.org/projects/applications/xfce4-taskmanager")
+    (synopsis "Easy to use task manager")
+    (description
+     "This is a task manager for the Xfce desktop.  It displays the CPU and
+memory usage graphically, and it can display processes as a tree.")
+    (license gpl2+)))
+
+(define-public orage
+  (package
+    (name "orage")
+    (version "4.12.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://archive.xfce.org/src/apps/"
+                                  name "/" (version-major+minor version) "/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+-2)
+       ("libical" ,libical)
+       ("libnotify" ,libnotify)
+       ("popt" ,popt)
+       ("xfce4-panel" ,xfce4-panel)))
+    (home-page "http://www.xfce.org/projects/")
+    (synopsis "Simple calendar application with reminders")
+    (description
+     "This is a simple calendar application for the Xfce desktop.  Orage has
+alarms and uses the iCalendar format, making it compatible with many other
+calendar applications.  It also includes a panel clock plugin and an
+international clock application capable of simultaneously showing clocks from
+several different time zones.")
+    (license gpl2+)))