Subject: Re: [bug#28733] Mate Desktop

From: ng0 <[email-masked]>
Date: Sat, 7 Oct 2017 23:10:35 +0000

I forgot to add the changes to gnu/services/desktop.scm,
they are now included in this version.
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://krosos.org/dist/keys/
https://www.infotropique.org https://krosos.org
From ec8c6733be6de7b4ff93876066780edbd417651a Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Thu, 14 Sep 2017 17:30:40 +0000
Subject: [PATCH 01/21] gnu: mate.scm: Order imported modules alphabetically.

* gnu/packages/mate.scm: Order imported modules alphabetically.
---
 gnu/packages/mate.scm | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 91489ba91..ea4c8aecc 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -27,28 +27,28 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages fonts)
-  #:use-module (gnu packages libcanberra)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
-  #:use-module (gnu packages docbook)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
-  #:use-module (gnu packages xorg)
-  #:use-module (gnu packages documentation)
-  #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages xml)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
 
 (define-public mate-icon-theme
   (package
-- 
2.14.2

From 707b379cde30b4f3e31dfc6ed941c628d69ae887 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 09:55:16 +0000
Subject: [PATCH 02/21] gnu: Add mate-user-guide.

* gnu/packages/mate.scm (mate-user-guide): New variable.
---
 gnu/packages/mate.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index ea4c8aecc..eeb5eb161 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -754,6 +754,46 @@ some users; these users may want to investigate other available window managers
 for use with MATE or as a standalone window manager.")
     (license license:gpl2+)))
 
+(define-public mate-user-guide
+  (package
+    (name "mate-user-guide")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0f3b46r9a3cywm7rpj08xlkfnlfr9db58xfcpix8i33qp50fxqmb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-desktop-file
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((yelp (assoc-ref inputs "yelp")))
+               (substitute* "mate-user-guide.desktop.in.in"
+                 (("yelp")
+                  (string-append yelp "/bin/yelp"))))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("gettext" ,gettext-minimal)
+       ("yelp-tools" ,yelp-tools)
+       ("yelp-xsl" ,yelp-xsl)))
+    (inputs
+     `(("yelp" ,yelp)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "User Documentation for Mate software")
+    (description
+     "MATE User Guide is a collection of documentation which details
+general use of the MATE Desktop environment.  Topics covered include
+sessions, panels, menus, file management, and preferences.")
+    (license (list license:fdl1.1+ license:gpl2+))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From d2378d5ed187457baeed71be1f2d50a99e4ff418 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 30 Sep 2017 21:44:52 +0000
Subject: [PATCH 03/21] gnu: mate-session-manager: Configure with with elogind
 support.

* gnu/packages/mate.scm (mate-session-manager)[arguments]: Add '--enable-elogind'
to configure-flags.
(phases): Add 'pre-configure' phase.
---
 gnu/packages/mate.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index eeb5eb161..409ca570f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -235,6 +235,29 @@ configurations (profiles).")
         (base32
          "0i0xq6041x2qmb26x9bawx0qpfkgjn6x9w3phnm9s7rc4s0z20ll"))))
     (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-elogind"
+                               "--disable-schemas-compile")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'pre-configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Use elogind instead of systemd.
+             (substitute* "configure"
+               (("libsystemd-login")
+                "libelogind")
+               (("systemd") "elogind"))
+             (substitute* "mate-session/gsm-systemd.c"
+               (("#include <systemd/sd-login.h>")
+                "#include <elogind/sd-login.h>"))
+             ;; Remove uses of the systemd journal.
+             (substitute* "mate-session/main.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             (substitute* "mate-session/gsm-manager.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             (substitute* "mate-session/gsm-autostart-app.c"
+               (("#ifdef HAVE_SYSTEMD") "#if 0"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("intltool" ,intltool)
@@ -243,6 +266,7 @@ configurations (profiles).")
     (inputs
      `(("gtk+" ,gtk+)
        ("dbus-glib" ,dbus-glib)
+       ("elogind" ,elogind)
        ("libsm" ,libsm)
        ("mate-desktop" ,mate-desktop)))
     (home-page "https://mate-desktop.org/")
-- 
2.14.2

From 89f944b27e17fef857f284dcdfff2e793c59ba82 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 15 Sep 2017 12:05:08 +0000
Subject: [PATCH 04/21] gnu: Add caja-extensions.

* gnu/packages/mate.scm (caja-extensions): New variable.
---
 gnu/packages/mate.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 409ca570f..1199b405a 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -27,6 +27,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages attr)
   #:use-module (gnu packages base)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
@@ -39,8 +40,10 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages messaging)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
@@ -662,6 +665,61 @@ icons on the MATE desktop.  It works on local and remote filesystems.")
     ;; for us.
     (license license:gpl2+)))
 
+(define-public caja-extensions
+  (package
+    (name "caja-extensions")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0hgala7zkfsa60jflq3s4n9yd11dhfdcla40l83cmgc3r1az7cmw"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--enable-sendto"
+                               ;; TODO: package "gupnp" to enable 'upnp', package
+                               ;; "gksu" to enable 'gksu'.
+                               (string-append "--with-sendto-plugins=removable-devices,"
+                                              "caja-burn,emailclient,pidgin,gajim")
+                               "--enable-image-converter"
+                               "--enable-open-terminal" "--enable-share"
+                               "--enable-wallpaper" "--enable-xattr-tags"
+                               (string-append "--with-cajadir="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/caja/extensions-2.0/"))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("attr" ,attr)
+       ("brasero" ,brasero)
+       ("caja" ,caja)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("gajim" ,gajim) ;runtime only?
+       ("gtk+" ,gtk+)
+       ("imagemagick" ,imagemagick)
+       ("graphicsmagick" ,graphicsmagick)
+       ("mate-desktop" ,mate-desktop)
+       ("pidgin" ,pidgin) ;runtime only?
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Extensions for the File manager Caja")
+    (description
+     "Caja is the official file manager for the MATE desktop.
+It allows for browsing directories, as well as previewing files and launching
+applications associated with them.  Caja is also responsible for handling the
+icons on the MATE desktop.  It works on local and remote filesystems.")
+    (license license:gpl2+)))
+
 (define-public mate-control-center
   (package
     (name "mate-control-center")
-- 
2.14.2

From 318272f1eefb74d12d93cc12ff4ee65e9ee353c9 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 15 Sep 2017 12:07:21 +0000
Subject: [PATCH 05/21] gnu: caja: Add native-search-paths.

* gnu/packages/mate.scm (caja)[native-search-paths]: Add it.
---
 gnu/packages/mate.scm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 1199b405a..274fe17e4 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -653,6 +653,10 @@ infamous 'Wanda the Fish'.")
        ("libxml2" ,libxml2)
        ("mate-desktop" ,mate-desktop)
        ("startup-notification" ,startup-notification)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "CAJA_EXTENSIONDIR")
+            (files (list "lib/caja/extensions-2.0/**")))))
     (home-page "https://mate-desktop.org/")
     (synopsis "File manager for the MATE desktop")
     (description
-- 
2.14.2

From 375db019a3f3498cfca84652fce0e23569a28b83 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Thu, 14 Sep 2017 19:28:15 +0000
Subject: [PATCH 06/21] gnu: Add atril.

* gnu/packages/mate.scm (atril): New variable.
---
 gnu/packages/mate.scm | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 115 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 274fe17e4..f25eb8dd9 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,27 +28,37 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages javascript)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages messaging)
+  #:use-module (gnu packages nettle)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pdf)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages tex)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
@@ -610,6 +620,111 @@ the Window List, the Window Selector, the Notification Area, the Clock and the
 infamous 'Wanda the Fish'.")
     (license (list license:gpl2+ license:lgpl2.0+))))
 
+(define-public atril
+  (package
+    (name "atril")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1wl332v80c0nzz7nw36d1pfmbiibvl3l0i4d25ihg6mg9wbc0145"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list (string-append "--with-openjpeg="
+                                              (assoc-ref %build-inputs "openjpeg"))
+                               "--enable-introspection"
+                               "--with-gtk=3.0"
+                               "--disable-schemas-compile"
+                               ;; FIXME: Enable build of Caja extensions.
+                               "--disable-caja")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-mathjax-path
+           (lambda _
+             (let* ((mathjax (assoc-ref %build-inputs "js-mathjax"))
+                    (mathjax-path (string-append mathjax
+                                                 "/share/javascript/mathjax")))
+               (substitute* "backend/epub/epub-document.c"
+                 (("/usr/share/javascript/mathjax")
+                  mathjax-path)))
+             #t))
+         (add-after 'unpack 'fix-introspection-install-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* '("configure")
+                 (("\\$\\(\\$PKG_CONFIG --variable=girdir gobject-introspection-1.0\\)")
+                  (string-append "\"" out "/share/gir-1.0/\""))
+                 (("\\$\\(\\$PKG_CONFIG --variable=typelibdir gobject-introspection-1.0\\)")
+                  (string-append out "/lib/girepository-1.0/")))
+               #t)))
+         (add-before 'install 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "data/Makefile"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("intltool" ,intltool)
+       ("itstool" ,itstool)
+       ("yelp-tools" ,yelp-tools)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("xmllint" ,libxml2)
+       ("zlib" ,zlib)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("caja" ,caja)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("djvulibre" ,djvulibre)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("ghostscript" ,ghostscript)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("js-mathjax" ,js-mathjax)
+       ("libcanberra" ,libcanberra)
+       ("libsecret" ,libsecret)
+       ("libspectre" ,libspectre)
+       ("libtiff" ,libtiff)
+       ("libx11" ,libx11)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("libgxps" ,libgxps)
+       ("libjpeg" ,libjpeg)
+       ("libxml2" ,libxml2)
+       ("dogtail" ,python2-dogtail)
+       ("shared-mime-info" ,shared-mime-info)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libgnome-keyring" ,libgnome-keyring)
+       ("libarchive" ,libarchive)
+       ("marco" ,marco)
+       ("nettle" ,nettle)
+       ("openjpeg" ,openjpeg-1)
+       ("pango" ,pango)
+       ;;("texlive" ,texlive)
+       ;; TODO:
+       ;;   Build libkpathsea as a shared library for DVI support.
+       ;; ("libkpathsea" ,texlive-bin)
+       ("poppler" ,poppler)
+       ("webkitgtk" ,webkitgtk)))
+    (home-page "https://mate-desktop.org")
+    (synopsis "Document viewer for Mate")
+    (description
+     "Document viewer for Mate")
+    (license license:gpl2)))
+
 (define-public caja
   (package
     (name "caja")
-- 
2.14.2

From 51598ef81d7fbd6657b02aeb04d7e68b306e21ad Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:05:02 +0000
Subject: [PATCH 07/21] gnu: Add mate-calc.

* gnu/packages/mate.scm (mate-calc): New variable.
---
 gnu/packages/mate.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index f25eb8dd9..484fd373d 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -995,6 +995,38 @@ general use of the MATE Desktop environment.  Topics covered include
 sessions, panels, menus, file management, and preferences.")
     (license (list license:fdl1.1+ license:gpl2+))))
 
+(define-public mate-calc
+  (package
+    (name "mate-calc")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0qfs6kx2nymbn6j3mnzgvk8p54ghc78jslsf4wjqsdq021qyl0ly"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libxml2" ,libxml2)
+       ("libcanberra" ,libcanberra)
+       ("pango" ,pango)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Calculator for MATE")
+    (description
+     "Mate Calc is the GTK+ calculator application for the MATE Desktop.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From af39a2c36dd69190f0e0c4adf8df2cdb9cfddd1c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:13:27 +0000
Subject: [PATCH 08/21] gnu: Add mate-backgrounds.

* gnu/packages/mate.scm (mate-backgrounds): New variable.
---
 gnu/packages/mate.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 484fd373d..3c65c8614 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1027,6 +1027,29 @@ sessions, panels, menus, file management, and preferences.")
      "Mate Calc is the GTK+ calculator application for the MATE Desktop.")
     (license license:gpl2+)))
 
+(define-public mate-backgrounds
+  (package
+    (name "mate-backgrounds")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "06q8ksjisijps2wn959arywsimhzd3j35mqkr048c26ck24d60zi"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Calculator for MATE")
+    (description
+     "MATE backgrounds package contains a collection of graphics files which
+can be used as backgrounds in the MATE Desktop environment.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From c80c03c0a38d6ad0869f850e6be74822949e0bbb Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:36:30 +0000
Subject: [PATCH 09/21] gnu: Add mate-common.

* gnu/packages/mate.scm (mate-common): New variable.
---
 gnu/packages/mate.scm | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 3c65c8614..55b072b19 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -63,6 +63,27 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg))
 
+(define-public mate-common
+  (package
+    (name "mate-common")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1005laf3z1h8qczm7pmwr40r842665cv6ykhjg7r93vldra48z6p"))))
+    (build-system gnu-build-system)
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Common files for development of MATE packages")
+    (description
+     "Mate Common includes common files and macros used by
+MATE applications.")
+    (license license:gpl3+)))
+
 (define-public mate-icon-theme
   (package
     (name "mate-icon-theme")
-- 
2.14.2

From 1bbb86ede8895b536691972cb18b68e24463f8cc Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 11:55:03 +0000
Subject: [PATCH 10/21] gnu: Add mate-icon-theme-faenza.

* gnu/packages/mate.scm (mate-icon-theme-faenza): New variable.
---
 gnu/packages/mate.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 55b072b19..de0102b9b 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -28,6 +28,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
@@ -107,6 +108,44 @@ MATE applications.")
      "This package contains the default icon theme used by the MATE desktop.")
     (license license:lgpl3+)))
 
+(define-public mate-icon-theme-faenza
+  (package
+    (name "mate-icon-theme-faenza")
+    (version "1.18.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://pub.mate-desktop.org/releases/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0vc3wg9l5yrxm0xmligz4lw2g3nqj1dz8fwv90xvym8pbjds2849"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autoconf
+           (lambda _
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (zero? (system* "sh" "autogen.sh")))))))
+    (native-inputs
+     `(("autoconf" ,(autoconf-wrapper))
+       ("automake" ,automake)
+       ("intltool" ,intltool)
+       ("icon-naming-utils" ,icon-naming-utils)
+       ("libtool" ,libtool)
+       ("mate-common" ,mate-common)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "MATE desktop environment icon theme faenza")
+    (description
+     "Icon theme using Faenza and Faience icon themes and some
+customized icons for MATE.  Furthermore it includes some icons
+from Mint-X-F and Faenza-Fresh icon packs.")
+    (license license:gpl2+)))
+
 (define-public mate-themes
   (package
     (name "mate-themes")
-- 
2.14.2

From 8cdf3081ba32806924222e590cefb61c9290dfa2 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 12:45:07 +0000
Subject: [PATCH 11/21] gnu: Add libfakekey.

* gnu/packages/xdisorg.scm (libfakekey): New variable.
---
 gnu/packages/xdisorg.scm | 29 ++++++++++++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7ca4986a0..b62bafb62 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2016, 2017 Marius Bakke <[email-masked]>
 ;;; Copyright © 2016 Petter <[email-masked]>
 ;;; Copyright © 2017 Mekeor Melire <[email-masked]>
-;;; Copyright © 2017 ng0 <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -187,6 +187,33 @@ X11 (yet).")
     (license (license:x11-style "file://COPYING"
                                 "See 'COPYING' in the distribution."))))
 
+(define-public libfakekey
+  (package
+    (name "libfakekey")
+    (version "0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://downloads.yoctoproject.org/releases"
+                            "/matchbox/libfakekey/" version "/libfakekey-"
+                            version ".tar.bz2"))
+        (sha256
+         (base32
+          "1501l0bflcrhqbf12n7a7cqilvr0w4xawxw0vw75p2940nkl4464"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "AM_LDFLAGS=-lX11")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libxtst" ,libxtst)
+       ("libx11" ,libx11)))
+    (home-page "https://www.yoctoproject.org/tools-resources/projects/matchbox")
+    (synopsis "X virtual keyboard library")
+    (description
+     "Libfakekey is a virtual keyboard library for X.")
+    (license license:gpl2)))
+
 (define-public xdotool
   (package
     (name "xdotool")
-- 
2.14.2

From e79119f36d88995d8410ee9e0331a0d7b62c011e Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 12:47:56 +0000
Subject: [PATCH 12/21] gnu: Add mate-netbook.

* gnu/packages/mate.scm (mate-netbook): New variable.
---
 gnu/packages/mate.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index de0102b9b..0cb24fd5f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public mate-common
@@ -1110,6 +1111,48 @@ sessions, panels, menus, file management, and preferences.")
 can be used as backgrounds in the MATE Desktop environment.")
     (license license:gpl2+)))
 
+(define-public mate-netbook
+  (package
+    (name "mate-netbook")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0zj4x9qis8dw0irxzb4va1189k8bqbvymxq3h7phnjwvr1m983gf"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("libfakekey" ,libfakekey)
+       ("libwnck" ,libwnck)
+       ("libxtst" ,libxtst)
+       ("libx11" ,libx11)
+       ("mate-panel" ,mate-panel)
+       ("xproto" ,xproto)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Tool for MATE on Netbooks")
+    (description
+     "Mate Netbook is a simple window management tool which:
+
+@enumerate
+@item Allows you to set basic rules for a window type, such as maximise|undecorate
+@item Allows exceptions to the rules, based on string matching for window name
+and window class.
+@item Allows 'reversing' of rules when the user manually changes something:
+Re-decorates windows on un-maximise.
+@end enumerate\n")
+    (license license:gpl3+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 7ef9184a3e114f7cf8b4c66129c86a97daeaf237 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 14:48:17 +0000
Subject: [PATCH 13/21] gnu: Add mate-screensaver.

* gnu/packages/mate.scm (mate-screensaver): New variable.
---
 gnu/packages/mate.scm | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 0cb24fd5f..e413ee33e 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1153,6 +1153,83 @@ Re-decorates windows on un-maximise.
 @end enumerate\n")
     (license license:gpl3+)))
 
+(define-public mate-screensaver
+  (package
+    (name "mate-screensaver")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0dfi10faf1fnvrm7c7wnfqg35ygq09ws1vjyv8394jlf0nn39g9j"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags
+       ;; FIXME: There is a permissions problem with screen locking
+       ;; which effectively locks you out completely. Enable locking
+       ;; once this has been fixed.
+       (list "--enable-locking" "--with-kbd-layout-indicator"
+             "--with-xf86gamma-ext" "--enable-pam"
+             "--disable-schemas-compile" "--without-console-kit")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autoconf
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (dbus-dir (string-append out "/share/dbus-1/services")))
+             (setenv "SHELL" (which "sh"))
+             (setenv "CONFIG_SHELL" (which "sh"))
+             (substitute* "configure"
+               (("dbus-1") ""))))))))
+    (native-inputs
+     `(("automake" ,automake)
+       ("autoconf" ,(autoconf-wrapper))
+       ("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("kbproto" ,kbproto)
+       ("mate-common" ,mate-common)
+       ("pkg-config" ,pkg-config)
+       ("randrproto" ,randrproto)
+       ("renderproto" ,renderproto)
+       ("scrnsaverproto" ,scrnsaverproto)
+       ("which" ,which)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libglade" ,libglade)
+       ("libmatekbd" ,libmatekbd)
+       ("libnotify" ,libnotify)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxklavier" ,libxklavier)
+       ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
+       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxxf86vm" ,libxxf86vm)
+       ("linux-pam" ,linux-pam)
+       ("mate-desktop" ,mate-desktop)
+       ("mate-menus" ,mate-menus)
+       ("pango" ,pango)
+       ("startup-notification" ,startup-notification)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Screensaver for MATE")
+    (description
+     "MATE backgrounds package contains a collection of graphics files which
+can be used as backgrounds in the MATE Desktop environment.")
+    (license license:gpl2+)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 978154bc2fe3e5ceb8a6a9246257d4ce5ceda7c1 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 16:58:06 +0000
Subject: [PATCH 14/21] gnu: Add mate-utils.

* gnu/packages/mate.scm (mate-utils): New variable.
---
 gnu/packages/mate.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index e413ee33e..23e326d83 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1230,6 +1230,60 @@ Re-decorates windows on un-maximise.
 can be used as backgrounds in the MATE Desktop environment.")
     (license license:gpl2+)))
 
+(define-public mate-utils
+  (package
+    (name "mate-utils")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0wr395dqfigj19ps0d76ycgwfljl9xxgs1a1g5wx6kcz5mvhzn5v"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libice" ,libice)
+       ("libsm" ,libsm)
+       ("pkg-config" ,pkg-config)
+       ("scrollkeeper" ,scrollkeeper)
+       ("xextpro" ,xextproto)
+       ("xproto" ,xproto)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libgtop" ,libgtop)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("mate-panel" ,mate-panel)
+       ("pango" ,pango)
+       ("zlib" ,zlib)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Utilities for the MATE Desktop")
+    (description
+     "Mate Utilities for the MATE Desktop containing:
+
+@enumerate
+@item mate-system-log
+@item mate-search-tool
+@item mate-dictionary
+@item mate-screenshot
+@item mate-disk-usage-analyzer
+@end enumerate\n")
+    (license (list license:gpl2
+                   license:fdl1.1+
+                   license:lgpl2.1))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 18574e3d906f10ab8be0ce5a80162a1ce593ef33 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 19:10:22 +0000
Subject: [PATCH 15/21] gnu: Add eom.

* gnu/packages/mate.scm (eom): New variable.
---
 gnu/packages/mate.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 23e326d83..082c5a0d5 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1284,6 +1284,57 @@ can be used as backgrounds in the MATE Desktop environment.")
                    license:fdl1.1+
                    license:lgpl2.1))))
 
+(define-public eom
+  (package
+    (name "eom")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "00ns7g7qykakc89lijrw2vwy9x9ijqiyvmnd4sw0j6py90zs8m87"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("dconf" ,dconf)
+       ("dbus" ,dbus)
+       ("dbus-glib" ,dbus-glib)
+       ("exempi" ,exempi)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libpeas" ,libpeas)
+       ("libxml2" ,libxml2)
+       ("libexif" ,libexif)
+       ("libjpeg" ,libjpeg)
+       ("librsvg" ,librsvg)
+       ("lcms" ,lcms)
+       ("mate-desktop" ,mate-desktop)
+       ("pango" ,pango)
+       ("shared-mime-info" ,shared-mime-info)
+       ("startup-notification" ,startup-notification)
+       ("zlib" ,zlib)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Eye of MATE")
+    (description
+     "Eye of MATE is the Image viewer for the MATE Desktop.")
+    (license (list license:gpl2))))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 59a99e008ed4e80dd4f006c101e57598632b865a Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:03:14 +0000
Subject: [PATCH 16/21] gnu: Add engrampa.

* gnu/packages/mate.scm (engrampa): New variable.
---
 gnu/packages/mate.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 082c5a0d5..77ffe414f 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -1335,6 +1336,60 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Eye of MATE is the Image viewer for the MATE Desktop.")
     (license (list license:gpl2))))
 
+(define-public engrampa
+  (package
+    (name "engrampa")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0d98zhqqc7qdnxcf0195kd04xmhijc0w2qrn6q61zd0daiswnv98"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(#:configure-flags (list "--disable-schemas-compile"
+                               "--disable-run-in-place"
+                               "--enable-magic"
+                               "--enable-packagekit"
+                               (string-append "--with-cajadir="
+                                              (assoc-ref %outputs "out")
+                                              "/lib/caja/extensions-2.0/"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'skip-gtk-update-icon-cache
+           ;; Don't create 'icon-theme.cache'.
+           (lambda _
+             (substitute* "data/Makefile"
+               (("gtk-update-icon-cache") "true"))
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("caja" ,caja)
+       ("file" ,file)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("json-glib" ,json-glib)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libsm" ,libsm)
+       ("packagekit" ,packagekit)
+       ("pango" ,pango)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Archive Manager for MATE")
+    (description
+     "Engrampa is the archive manager for the MATE Desktop.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From 8fc87e539642d80e97fb0052f0a8504b6abc9b52 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:27:04 +0000
Subject: [PATCH 17/21] gnu: Add pluma.

* gnu/packages/mate.scm (pluma): New variable.
---
 gnu/packages/mate.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 77ffe414f..5d4f51c91 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
@@ -48,6 +49,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
@@ -1390,6 +1392,57 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Engrampa is the archive manager for the MATE Desktop.")
     (license license:gpl2)))
 
+(define-public pluma
+  (package
+    (name "pluma")
+    (version "1.18.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1z0938yiygxipj2a77n9dv8v4253snrc5gbbnarcnim9xba2j3zz"))))
+    (build-system glib-or-gtk-build-system)
+    (arguments
+     `(; Tests can not succeed.
+       ;; https://github.com/mate-desktop/mate-text-editor/issues/33
+       #:tests? #f))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("atk" ,atk)
+       ("cairo" ,cairo)
+       ("enchant" ,enchant)
+       ("glib" ,glib)
+       ("gtk+" ,gtk+)
+       ("gtksourceview" ,gtksourceview)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("iso-codes" ,iso-codes)
+       ("libcanberra" ,libcanberra)
+       ("libx11" ,libx11)
+       ("libsm" ,libsm)
+       ("libpeas" ,libpeas)
+       ("libxml2" ,libxml2)
+       ("libice" ,libice)
+       ("packagekit" ,packagekit)
+       ("pango" ,pango)
+       ("python-2" ,python-2)
+       ("scrollkeeper" ,scrollkeeper)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "Text Editor for MATE")
+    (description
+     "Pluma is the text editor for the MATE Desktop.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From c19e629e92998881f58939af8a27bee95c6bde4e Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:41:00 +0000
Subject: [PATCH 18/21] gnu: Add mate-system-monitor.

* gnu/packages/mate.scm (mate-system-monitor): New variable.
---
 gnu/packages/mate.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 5d4f51c91..e21b76351 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1443,6 +1443,47 @@ can be used as backgrounds in the MATE Desktop environment.")
      "Pluma is the text editor for the MATE Desktop.")
     (license license:gpl2)))
 
+(define-public mate-system-monitor
+  (package
+    (name "mate-system-monitor")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "1wcvrl4lfnjkhywb311p29prf1qiab6iynb6q1fgfsl6za8hsz48"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("gettext" ,gettext-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("yelp-tools" ,yelp-tools)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("glib" ,glib)
+       ("glibmm" ,glibmm)
+       ("gtkmm" ,gtkmm)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("libsigc++" ,libsigc++)
+       ("libcanberra" ,libcanberra)
+       ("libxml2" ,libxml2)
+       ("libwnck" ,libwnck)
+       ("libgtop" ,libgtop)
+       ("librsvg" ,librsvg)
+       ("polkit" ,polkit)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "System Monitor for MATE")
+    (description
+     "Mate System Monitor provides a tool for for the
+MATE Desktop to monitor your system resources and usage.")
+    (license license:gpl2)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From c0c256e1cce42ddc0e72c0a3dc5bf8dcf97fca5c Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 17 Sep 2017 20:53:10 +0000
Subject: [PATCH 19/21] gnu: Add mate-polkit.

* gnu/packages/mate.scm (mate-polkit): New variable.
---
 gnu/packages/mate.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index e21b76351..36b2d3f05 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1484,6 +1484,40 @@ can be used as backgrounds in the MATE Desktop environment.")
 MATE Desktop to monitor your system resources and usage.")
     (license license:gpl2)))
 
+(define-public mate-polkit
+  (package
+    (name "mate-polkit")
+    (version "1.18.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://pub.mate-desktop.org/releases/"
+                           (version-major+minor version) "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "15vf2hnyjg8zsw3iiwjwi497yygkmvpnn6w1hik7dfw4a621w0gc"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("gtk-doc" ,gtk-doc)
+       ("intltool" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("accountsservice" ,accountsservice)
+       ("glib" ,glib)
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+" ,gtk+)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("polkit" ,polkit)))
+    (home-page "https://mate-desktop.org/")
+    (synopsis "DBus specific service for MATE")
+    (description
+     "MATE Polkit is a MATE specific DBUS service that is
+used to bring up authentication dialogs.")
+    (license license:lgpl2.1)))
+
 (define-public mate
   (package
     (name "mate")
-- 
2.14.2

From a44f48f33231304d0fbc79b888f25341f3ebf30b Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 16 Sep 2017 15:08:37 +0000
Subject: [PATCH 20/21] gnu: mate: Add more packages.

* gnu/packages/mate.scm (mate)[inputs]: Add "mate-user-guide", "mate-calc", "mate-backgrounds",
"mate-netbook", "hicolor-icon-theme", "mate-utils", "engrampa", "eom", "mate-polkit",
"mate-system-monitor", "mate-utils", "pluma", "atril".
---
 gnu/packages/mate.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 36b2d3f05..fde8459f8 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -1537,14 +1537,18 @@ used to bring up authentication dialogs.")
     (inputs
      ;; TODO: Add more packages
      `(("at-spi2-core"              ,at-spi2-core)
+       ("atril"                     ,atril)
        ("caja"                      ,caja)
        ("dbus"                      ,dbus)
        ("dconf"                     ,dconf)
        ("desktop-file-utils"        ,desktop-file-utils)
+       ("engrampa"                  ,engrampa)
+       ("eom"                       ,eom)
        ("font-cantarell"            ,font-cantarell)
        ("glib-networking"           ,glib-networking)
        ("gnome-keyring"             ,gnome-keyring)
        ("gvfs"                      ,gvfs)
+       ("hicolor-icon-theme"        ,hicolor-icon-theme)
        ("libmatekbd"                ,libmatekbd)
        ("libmateweather"            ,libmateweather)
        ("libmatemixer"              ,libmatemixer)
@@ -1560,6 +1564,15 @@ used to bring up authentication dialogs.")
        ("mate-control-center"       ,mate-control-center)
        ("mate-media"                ,mate-media)
        ("mate-applets"              ,mate-applets)
+       ("mate-user-guide"           ,mate-user-guide)
+       ("mate-calc"                 ,mate-calc)
+       ("mate-backgrounds"          ,mate-backgrounds)
+       ("mate-netbook"              ,mate-netbook)
+       ("mate-utils"                ,mate-utils)
+       ("mate-polkit"               ,mate-polkit)
+       ("mate-system-monitor"       ,mate-system-monitor)
+       ("mate-utils"                ,mate-utils)
+       ("pluma"                     ,pluma)
        ("pinentry-gnome3"           ,pinentry-gnome3)
        ("pulseaudio"                ,pulseaudio)
        ("shared-mime-info"          ,shared-mime-info)
-- 
2.14.2

From 34df014a462b92f1426b759e1397ceb3feae3719 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Fri, 29 Sep 2017 10:06:51 +0000
Subject: [PATCH 21/21] gnu: services: Add MATE desktop service.

* gnu/services/desktop.scm (<mate-desktop-configuration>,
mate-desktop-service-type): New variable.
(mate-desktop-service): New public variable.

* doc/guix.texi (Desktop Services): Document the service.
---
 doc/guix.texi            | 26 +++++++++++++++++++-------
 gnu/services/desktop.scm | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 7 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 7b5b71179..62dca565a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -26,7 +26,7 @@ Copyright @copyright{} 2016 Ben Woodcroft@*
 Copyright @copyright{} 2016 Chris Marusich@*
 Copyright @copyright{} 2016, 2017 Efraim Flashner@*
 Copyright @copyright{} 2016 John Darrington@*
-Copyright @copyright{} 2016 ng0@*
+Copyright @copyright{} 2016, 2017 ng0@*
 Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@*
 Copyright @copyright{} 2016 Julien Lepiller@*
 Copyright @copyright{} 2016 Alex ter Weele@*
@@ -11783,7 +11783,7 @@ The @code{(gnu services desktop)} module provides services that are
 usually useful in the context of a ``desktop'' setup---that is, on a
 machine running a graphical display server, possibly with graphical user
 interfaces, etc.  It also defines services that provide specific desktop
-environments like GNOME and XFCE.
+environments like GNOME, XFCE or MATE.
 
 To simplify things, the module defines a variable containing the set of
 services that users typically expect on a machine with a graphical
@@ -11808,9 +11808,10 @@ The @var{%desktop-services} variable can be used as the @code{services}
 field of an @code{operating-system} declaration (@pxref{operating-system
 Reference, @code{services}}).
 
-Additionally, the @code{gnome-desktop-service} and
-@code{xfce-desktop-service} procedures can add GNOME and/or XFCE to a
-system.  To ``add GNOME'' means that system-level services like the
+Additionally, the @code{gnome-desktop-service},
+@code{xfce-desktop-service} and @code{mate-desktop-service}
+procedures can add GNOME, XFCE and/or MATE to a system.
+To ``add GNOME'' means that system-level services like the
 backlight adjustment helpers and the power management utilities are
 added to the system, extending @code{polkit} and @code{dbus}
 appropriately, allowing GNOME to operate with elevated privileges on a
@@ -11821,6 +11822,11 @@ not only adds the @code{xfce} metapackage to the system profile, but it
 also gives the Thunar file manager the ability to open a ``root-mode''
 file management window, if the user authenticates using the
 administrator's password via the standard polkit graphical interface.
+To ``add MATE'' means that @code{polkit} and @code{dbus} are extended
+appropriately, allowing MATE to operate with elevated privileges on a
+limited number of special-purpose system interfaces.  Additionally,
+adding a service made by @code{mate-desktop-service} adds the MATE
+metapackage to the system profile.
 
 @deffn {Scheme Procedure} gnome-desktop-service
 Return a service that adds the @code{gnome} package to the system
@@ -11835,9 +11841,15 @@ file system as root from within a user session, after the user has
 authenticated with the administrator's password.
 @end deffn
 
-Because the GNOME and XFCE desktop services pull in so many packages,
+@deffn {Scheme Procedure} mate-desktop-service
+Return a service that adds the @code{mate} package to the system
+profile, and extends polkit with the actions from
+@code{mate-settings-daemon}.
+@end deffn
+
+Because the GNOME, XFCE and MATE desktop services pull in so many packages,
 the default @code{%desktop-services} variable doesn't include either of
-them by default.  To add GNOME or XFCE, just @code{cons} them onto
+them by default.  To add GNOME, XFCE orMATE, just @code{cons} them onto
 @code{%desktop-services} in the @code{services} field of your
 @code{operating-system}:
 
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 527a3101c..ff72d1841 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2016 Sou Bunnbu <[email-masked]>
 ;;; Copyright © 2017 Maxim Cournoyer <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,6 +43,7 @@
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages mate)
   #:use-module (guix records)
   #:use-module (guix packages)
   #:use-module (guix store)
@@ -82,6 +84,11 @@
             gnome-desktop-service
             gnome-desktop-service-type
 
+            mate-desktop-configuration
+            mate-desktop-configuration?
+            mate-desktop-service
+            mate-desktop-service-type
+
             xfce-desktop-configuration
             xfce-desktop-configuration?
             xfce-desktop-service
@@ -798,6 +805,32 @@ accountsservice web site} for more information."
 and extends polkit with the actions from @code{gnome-settings-daemon}."
   (service gnome-desktop-service-type config))
 
+;; MATE Desktop service.
+;; TODO: Add mate-screensaver.
+
+(define-record-type* <mate-desktop-configuration> mate-desktop-configuration
+  make-mate-desktop-configuration
+  mate-desktop-configuration
+  (mate-package mate-package (default mate)))
+
+(define mate-desktop-service-type
+  (service-type
+   (name 'mate-desktop)
+   (extensions
+    (list (service-extension polkit-service-type
+                             (compose list
+                                      (package-direct-input-selector
+                                       "mate-settings-daemon")
+                                      mate-package))
+          (service-extension profile-service-type
+                             (compose list
+                                      mate-package))))))
+
+(define* (mate-desktop-service #:key (config (mate-desktop-configuration)))
+  "Return a service that adds the @code{mate} package to the system profile,
+and extends polkit with the actions from @code{mate-settings-daemon}."
+  (service mate-desktop-service-type config))
+
 
 ;;;
 ;;; XFCE desktop service.
-- 
2.14.2