aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/desktops/mate
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/mate')
-rw-r--r--nixpkgs/pkgs/desktops/mate/atril/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix51
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-dropbox/fix-cli-paths.patch11
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix41
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja/caja-extension-dirs.patch30
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja/default.nix41
-rw-r--r--nixpkgs/pkgs/desktops/mate/default.nix93
-rw-r--r--nixpkgs/pkgs/desktops/mate/engrampa/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/mate/eom/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmateweather/default.nix30
-rw-r--r--nixpkgs/pkgs/desktops/mate/marco/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-applets/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-calc/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-common/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix63
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-control-center/mate-control-center.keybindings-dir.patch106
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix43
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-media/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-menus/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/default.nix47
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix41
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-themes/default.nix30
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-utils/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/mate/mozo/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/mate/pluma/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/mate/python-caja/default.nix34
-rwxr-xr-xnixpkgs/pkgs/desktops/mate/update.sh64
45 files changed, 1738 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/mate/atril/default.nix b/nixpkgs/pkgs/desktops/mate/atril/default.nix
new file mode 100644
index 00000000000..f19114a5442
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/atril/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, glib, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "atril";
+ version = "1.22.2";
+
+ src = fetchurl {
+ url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "11l78zkxszvsjr74cmk1wff5ycqrzd89y6k36rydv2rb5af2nsfw";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ itstool
+ libsecret
+ libxml2
+ poppler
+ mate.caja
+ mate.mate-desktop
+ hicolor-icon-theme
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ makeFlags = [ "cajaextensiondir=$$out/lib/caja/extensions-2.0" ];
+
+ meta = {
+ description = "A simple multi-page document viewer for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix b/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix
new file mode 100644
index 00000000000..597391eb135
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, substituteAll
+, pkgconfig, gobject-introspection, gdk-pixbuf
+, gtk3, mate, python3, dropbox }:
+
+let
+ dropboxd = "${dropbox}/bin/dropbox";
+in
+stdenv.mkDerivation rec {
+ pname = "caja-dropbox";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "18cnd3yw2ingvl38mhmfbl5k0kfg8pzcf2649j00i6v90cwiril5";
+ };
+
+ patches = [
+ (substituteAll {
+ src = ./fix-cli-paths.patch;
+ inherit dropboxd;
+ })
+ ];
+
+ strictDeps = true;
+
+ nativeBuildInputs = [
+ pkgconfig
+ gobject-introspection
+ gdk-pixbuf
+ (python3.withPackages (ps: with ps; [
+ docutils
+ pygobject3
+ ]))
+ ];
+
+ buildInputs = [
+ gtk3
+ mate.caja
+ python3
+ ];
+
+ configureFlags = [ "--with-caja-extension-dir=$$out/lib/caja/extensions-2.0" ];
+
+ meta = with stdenv.lib; {
+ description = "Dropbox extension for Caja file manager";
+ homepage = "https://github.com/mate-desktop/caja-dropbox";
+ license = with licenses; [ gpl3 cc-by-nd-30 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/caja-dropbox/fix-cli-paths.patch b/nixpkgs/pkgs/desktops/mate/caja-dropbox/fix-cli-paths.patch
new file mode 100644
index 00000000000..de591f493f6
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja-dropbox/fix-cli-paths.patch
@@ -0,0 +1,11 @@
+--- a/caja-dropbox.in
++++ b/caja-dropbox.in
+@@ -70,7 +70,7 @@ DOWNLOADING = "Downloading Dropbox... %d%%"
+ UNPACKING = "Unpacking Dropbox... %d%%"
+
+ PARENT_DIR = os.path.expanduser("~")
+-DROPBOXD_PATH = "%s/.dropbox-dist/dropboxd" % PARENT_DIR
++DROPBOXD_PATH = "@dropboxd@"
+ DESKTOP_FILE = "@DESKTOP_FILE_DIR@/caja-dropbox.desktop"
+
+ enc = locale.getpreferredencoding()
diff --git a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
new file mode 100644
index 00000000000..ba21cb00d35
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, gupnp, mate, imagemagick, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "caja-extensions";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1h866jmdd3qpjzi7wjj11krwiaadnlf21844g1zqfb4jgrzj773p";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gupnp
+ mate.caja
+ mate.mate-desktop
+ imagemagick
+ ];
+
+ postPatch = ''
+ for f in image-converter/caja-image-{resizer,rotator}.c; do
+ substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert"
+ done
+ '';
+
+ configureFlags = [ "--with-cajadir=$$out/lib/caja/extensions-2.0" ];
+
+ meta = with stdenv.lib; {
+ description = "Set of extensions for Caja file manager";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix
new file mode 100644
index 00000000000..35e3cd198f6
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, lib, makeWrapper, caja-extensions, caja, extensions ? [ caja-extensions ] }:
+
+stdenv.mkDerivation {
+ pname = "${caja.pname}-with-extensions";
+ version = caja.version;
+
+ phases = [ "installPhase" ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ inherit caja;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ makeWrapper $caja/bin/caja $out/bin/caja \
+ --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions}
+ '';
+
+ inherit (caja.meta);
+}
diff --git a/nixpkgs/pkgs/desktops/mate/caja/caja-extension-dirs.patch b/nixpkgs/pkgs/desktops/mate/caja/caja-extension-dirs.patch
new file mode 100644
index 00000000000..7490a368efd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja/caja-extension-dirs.patch
@@ -0,0 +1,30 @@
+diff --git a/libcaja-private/caja-module.c b/libcaja-private/caja-module.c
+index 023c22e..414913b 100644
+--- a/libcaja-private/caja-module.c
++++ b/libcaja-private/caja-module.c
+@@ -258,11 +258,25 @@ caja_module_setup (void)
+ {
+ static gboolean initialized = FALSE;
+ GList *res;
++ gchar *caja_extension_dirs;
++ gchar **dir_vector;
+
+ if (!initialized)
+ {
+ initialized = TRUE;
+
++ caja_extension_dirs = (gchar *) g_getenv ("CAJA_EXTENSION_DIRS");
++
++ if (caja_extension_dirs)
++ {
++ dir_vector = g_strsplit (caja_extension_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
++
++ for (gchar **dir = dir_vector; *dir != NULL; ++ dir)
++ load_module_dir (*dir);
++
++ g_strfreev(dir_vector);
++ }
++
+ load_module_dir (CAJA_EXTENSIONDIR);
+
+ eel_debug_call_at_shutdown (free_module_objects);
diff --git a/nixpkgs/pkgs/desktops/mate/caja/default.nix b/nixpkgs/pkgs/desktops/mate/caja/default.nix
new file mode 100644
index 00000000000..667a73eb630
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libnotify, libxml2, libexif, exempi, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "caja";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "10b7yjimblymp1fpsrl4jb2k7kbhla2izsj3njfmg2n6fv9fy9iv";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libnotify
+ libxml2
+ libexif
+ exempi
+ mate.mate-desktop
+ hicolor-icon-theme
+ ];
+
+ patches = [
+ ./caja-extension-dirs.patch
+ ];
+
+ configureFlags = [ "--disable-update-mimedb" ];
+
+ meta = {
+ description = "File manager for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = with stdenv.lib.licenses; [ gpl2 lgpl2 ];
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/default.nix b/nixpkgs/pkgs/desktops/mate/default.nix
new file mode 100644
index 00000000000..3970b2b2921
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/default.nix
@@ -0,0 +1,93 @@
+{ newScope }:
+
+let
+ callPackage = newScope self;
+
+ self = rec {
+
+ atril = callPackage ./atril { };
+ caja = callPackage ./caja { };
+ caja-dropbox = callPackage ./caja-dropbox { };
+ caja-extensions = callPackage ./caja-extensions { };
+ caja-with-extensions = callPackage ./caja-with-extensions { };
+ engrampa = callPackage ./engrampa { };
+ eom = callPackage ./eom { };
+ libmatekbd = callPackage ./libmatekbd { };
+ libmatemixer = callPackage ./libmatemixer { };
+ libmateweather = callPackage ./libmateweather { };
+ marco = callPackage ./marco { };
+ mate-applets = callPackage ./mate-applets { };
+ mate-backgrounds = callPackage ./mate-backgrounds { };
+ mate-calc = callPackage ./mate-calc { };
+ mate-common = callPackage ./mate-common { };
+ mate-control-center = callPackage ./mate-control-center { };
+ mate-desktop = callPackage ./mate-desktop { };
+ mate-icon-theme = callPackage ./mate-icon-theme { };
+ mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { };
+ mate-indicator-applet = callPackage ./mate-indicator-applet { };
+ mate-media = callPackage ./mate-media { };
+ mate-menus = callPackage ./mate-menus { };
+ mate-netbook = callPackage ./mate-netbook { };
+ mate-notification-daemon = callPackage ./mate-notification-daemon { };
+ mate-panel = callPackage ./mate-panel { };
+ mate-polkit = callPackage ./mate-polkit { };
+ mate-power-manager = callPackage ./mate-power-manager { };
+ mate-sensors-applet = callPackage ./mate-sensors-applet { };
+ mate-session-manager = callPackage ./mate-session-manager { };
+ mate-settings-daemon = callPackage ./mate-settings-daemon { };
+ mate-screensaver = callPackage ./mate-screensaver { };
+ mate-system-monitor = callPackage ./mate-system-monitor { };
+ mate-terminal = callPackage ./mate-terminal { };
+ mate-themes = callPackage ./mate-themes { };
+ mate-user-guide = callPackage ./mate-user-guide { };
+ mate-user-share = callPackage ./mate-user-share { };
+ mate-utils = callPackage ./mate-utils { };
+ mozo = callPackage ./mozo { };
+ pluma = callPackage ./pluma { };
+ python-caja = callPackage ./python-caja { };
+
+ basePackages = [
+ caja
+ libmatekbd
+ libmatemixer
+ libmateweather
+ marco
+ mate-common
+ mate-control-center
+ mate-desktop
+ mate-icon-theme
+ mate-menus
+ mate-notification-daemon
+ mate-panel
+ mate-polkit
+ mate-session-manager
+ mate-settings-daemon
+ mate-themes
+ ];
+
+ extraPackages = [
+ atril
+ caja-extensions
+ engrampa
+ eom
+ mate-applets
+ mate-backgrounds
+ mate-calc
+ mate-indicator-applet
+ mate-media
+ mate-netbook
+ mate-power-manager
+ mate-screensaver
+ mate-sensors-applet
+ mate-system-monitor
+ mate-terminal
+ mate-user-guide
+ # mate-user-share
+ mate-utils
+ mozo
+ pluma
+ ];
+
+ };
+
+in self
diff --git a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
new file mode 100644
index 00000000000..0278fd7fec8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "engrampa";
+ version = "1.22.2";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0ph7ngk32nnzc3psqjs5zy52zbjilk30spr2r4sixqxvmz7d28gd";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ libxml2
+ gtk3
+ mate.caja
+ hicolor-icon-theme
+ mate.mate-desktop
+ ];
+
+ configureFlags = [ "--with-cajadir=$$out/lib/caja/extensions-2.0" ];
+
+ meta = {
+ description = "Archive Manager for MATE";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/eom/default.nix b/nixpkgs/pkgs/desktops/mate/eom/default.nix
new file mode 100644
index 00000000000..cc683ab2db2
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/eom/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, exempi, lcms2, libexif, libjpeg, librsvg, libxml2, libpeas, shared-mime-info, gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "eom";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "03lpxqvyaqhz4wmi07nxcyn5q73ym3dzm41cdid53f2dp9lk1mv4";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ exempi
+ lcms2
+ libexif
+ libjpeg
+ librsvg
+ libxml2
+ shared-mime-info
+ gtk3
+ libpeas
+ mate.mate-desktop
+ hicolor-icon-theme
+ ];
+
+ meta = {
+ description = "An image viewing and cataloging program for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
new file mode 100644
index 00000000000..d6709c375e6
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libxklavier }:
+
+stdenv.mkDerivation rec {
+ pname = "libmatekbd";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1dsr7618c92mhwabwhgxqsfp7gnf9zrz2z790jc5g085dxhg13y8";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool ];
+
+ buildInputs = [ gtk3 libxklavier ];
+
+ meta = with stdenv.lib; {
+ description = "Keyboard management library for MATE";
+ homepage = https://github.com/mate-desktop/libmatekbd;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
new file mode 100644
index 00000000000..17fee5d61cb
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
@@ -0,0 +1,31 @@
+{ config, stdenv, fetchurl, pkgconfig, intltool, glib
+, alsaSupport ? stdenv.isLinux, alsaLib
+, pulseaudioSupport ? config.pulseaudio or true, libpulseaudio
+, ossSupport ? false
+ }:
+
+stdenv.mkDerivation rec {
+ pname = "libmatemixer";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1v0gpr55gj4mj8hzxbhgzrmhaxvs2inxhsmirvjw39sc7iplvrh9";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool ];
+
+ buildInputs = [ glib ]
+ ++ stdenv.lib.optional alsaSupport alsaLib
+ ++ stdenv.lib.optional pulseaudioSupport libpulseaudio;
+
+ configureFlags = stdenv.lib.optional ossSupport "--enable-oss";
+
+ meta = with stdenv.lib; {
+ description = "Mixer library for MATE";
+ homepage = https://github.com/mate-desktop/libmatemixer;
+ license = with licenses; [ gpl2 lgpl2 ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
new file mode 100644
index 00000000000..e4976f71ae6
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libsoup, tzdata }:
+
+stdenv.mkDerivation rec {
+ pname = "libmateweather";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1ribgcwl4ncfbcf9bkcbxrgc7yzajdnxg12837psngymkqswlp6a";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool ];
+
+ buildInputs = [ gtk3 libsoup tzdata ];
+
+ configureFlags = [
+ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo"
+ "--enable-locations-compression"
+ ];
+
+ preFixup = "rm -f $out/share/icons/mate/icon-theme.cache";
+
+ meta = with stdenv.lib; {
+ description = "Library to access weather information from online services for MATE";
+ homepage = https://github.com/mate-desktop/libmateweather;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/marco/default.nix b/nixpkgs/pkgs/desktops/mate/marco/default.nix
new file mode 100644
index 00000000000..9899256018a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/marco/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, libcanberra-gtk3, libgtop, libstartup_notification, gnome3, gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "marco";
+ version = "1.22.2";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0sc7x14229yj22ka1vlzbaqndwcgh6idypjmm9rydkj4n968jwry";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ libxml2
+ libcanberra-gtk3
+ libgtop
+ libstartup_notification
+ gtk3
+ gnome3.zenity
+ ];
+
+ meta = with stdenv.lib; {
+ description = "MATE default window manager";
+ homepage = https://github.com/mate-desktop/marco;
+ license = [ licenses.gpl2 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
new file mode 100644
index 00000000000..ec7ad2b4294
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gnome3, glib, gtk3, gtksourceview3, libwnck3, libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-applets";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "19sjm2180ir8a264rz8m528qaqjpl3q3cq095ab0sbkp2igksrfx";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gtksourceview3
+ gnome3.gucharmap
+ libwnck3
+ libgtop
+ libxml2
+ libnotify
+ polkit
+ upower
+ wirelesstools
+ mate.libmateweather
+ mate.mate-panel
+ hicolor-icon-theme
+ ];
+
+ configureFlags = [ "--enable-suid=no" ];
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ meta = with stdenv.lib; {
+ description = "Applets for use with the MATE panel";
+ homepage = https://mate-desktop.org;
+ license = with licenses; [ gpl2Plus lgpl2Plus ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
new file mode 100644
index 00000000000..2667c25959e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, intltool }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-backgrounds";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1j9ch04qi2q4mdcvb92w667ra9hpfdf2bfpi1dpw0nbph7r6qvj9";
+ };
+
+ nativeBuildInputs = [ intltool ];
+
+ meta = with stdenv.lib; {
+ description = "Background images and data for MATE";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
new file mode 100644
index 00000000000..64ede5101c7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gtk3, libxml2, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-calc";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0zin3w03zrkpb12rvay23bfk9fnjpybkr5mqzkpn9xfnqamhk8ld";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libxml2
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Calculator for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = [ licenses.gpl2Plus ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-common/default.nix b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
new file mode 100644
index 00000000000..f85dd632bd1
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-common";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "11lwckndizawbq993ws8lqp59vsc873zri0m8s1i5zyc4qx9f69z";
+ };
+
+ meta = {
+ description = "Common files for development of MATE packages";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
new file mode 100644
index 00000000000..a06c24b9c72
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, dbus-glib,
+ libxklavier, libcanberra-gtk3, librsvg, libappindicator-gtk3,
+ desktop-file-utils, gnome3, gtk3, mate, hicolor-icon-theme, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mate-control-center";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0w9w3wkxksbhzyd96y1x6yxb0q5lkp16y8i42564b6njvwqch5a0";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ desktop-file-utils
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ libxml2
+ dbus-glib
+ libxklavier
+ libcanberra-gtk3
+ librsvg
+ libappindicator-gtk3
+ gtk3
+ gnome3.dconf
+ hicolor-icon-theme
+ mate.mate-desktop
+ mate.libmatekbd
+ mate.mate-menus
+ mate.marco
+ mate.mate-settings-daemon
+ ];
+
+ patches = [
+ # look up keyboard shortcuts in system data dirs
+ ./mate-control-center.keybindings-dir.patch
+ ];
+
+ configureFlags = [ "--disable-update-mimedb" ];
+
+ preFixup = ''
+ gappsWrapperArgs+=(
+ # WM keyboard shortcuts
+ --prefix XDG_DATA_DIRS : "${mate.marco}/share"
+ )
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Utilities to configure the MATE desktop";
+ homepage = https://github.com/mate-desktop/mate-control-center;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-control-center/mate-control-center.keybindings-dir.patch b/nixpkgs/pkgs/desktops/mate/mate-control-center/mate-control-center.keybindings-dir.patch
new file mode 100644
index 00000000000..4a3036ae16e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-control-center/mate-control-center.keybindings-dir.patch
@@ -0,0 +1,106 @@
+From faeb322b01d3856f3cf163470cc38f4e88a8527c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Sun, 28 Apr 2019 21:45:39 -0300
+Subject: [PATCH] Use system data dirs to locate key bindings
+
+---
+ capplets/keybindings/Makefile.am | 3 +-
+ .../keybindings/mate-keybinding-properties.c | 58 ++++++++++++-------
+ 2 files changed, 39 insertions(+), 22 deletions(-)
+
+diff --git a/capplets/keybindings/Makefile.am b/capplets/keybindings/Makefile.am
+index e5efb109..9501dd8f 100644
+--- a/capplets/keybindings/Makefile.am
++++ b/capplets/keybindings/Makefile.am
+@@ -33,8 +33,7 @@ AM_CPPFLAGS = \
+ $(MATECC_CAPPLETS_CFLAGS) \
+ -DMATELOCALEDIR="\"$(datadir)/locale\"" \
+ -DMATECC_DATA_DIR="\"$(pkgdatadir)\"" \
+- -DMATECC_UI_DIR="\"$(uidir)\"" \
+- -DMATECC_KEYBINDINGS_DIR="\"$(pkgdatadir)/keybindings\""
++ -DMATECC_UI_DIR="\"$(uidir)\""
+ CLEANFILES = \
+ $(MATECC_CAPPLETS_CLEANFILES) \
+ $(desktop_DATA) \
+diff --git a/capplets/keybindings/mate-keybinding-properties.c b/capplets/keybindings/mate-keybinding-properties.c
+index 4f257333..cf1891d2 100644
+--- a/capplets/keybindings/mate-keybinding-properties.c
++++ b/capplets/keybindings/mate-keybinding-properties.c
+@@ -1033,39 +1033,57 @@ static void
+ reload_key_entries (GtkBuilder *builder)
+ {
+ gchar **wm_keybindings;
+- GDir *dir;
+- const char *name;
+ GList *list, *l;
++ const gchar * const * data_dirs;
++ GHashTable *loaded_files;
++ guint i;
+
+ wm_keybindings = wm_common_get_current_keybindings();
+
+ clear_old_model (builder);
+
+- dir = g_dir_open (MATECC_KEYBINDINGS_DIR, 0, NULL);
+- if (!dir)
+- return;
+-
+- list = NULL;
+- for (name = g_dir_read_name (dir) ; name ; name = g_dir_read_name (dir))
++ loaded_files = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
++ data_dirs = g_get_system_data_dirs ();
++ for (i = 0; data_dirs[i] != NULL; i++)
+ {
+- if (g_str_has_suffix (name, ".xml"))
++ g_autofree gchar *dir_path = NULL;
++ GDir *dir;
++ const gchar *name;
++
++ dir_path = g_build_filename (data_dirs[i], "mate-control-center", "keybindings", NULL);
++ g_debug ("Keybinding dir: %s", dir_path);
++
++ dir = g_dir_open (dir_path, 0, NULL);
++ if (!dir)
++ continue;
++
++ for (name = g_dir_read_name (dir) ; name ; name = g_dir_read_name (dir))
+ {
+- list = g_list_insert_sorted (list, g_strdup (name),
+- (GCompareFunc) g_ascii_strcasecmp);
+- }
+- }
+- g_dir_close (dir);
++ if (g_str_has_suffix (name, ".xml") == FALSE)
++ continue;
++
++ if (g_hash_table_lookup (loaded_files, name) != NULL)
++ {
++ g_debug ("Not loading %s, it was already loaded from another directory", name);
++ continue;
++ }
+
++ g_hash_table_insert (loaded_files, g_strdup (name), g_strdup (dir_path));
++ }
++
++ g_dir_close (dir);
++ }
++ list = g_hash_table_get_keys (loaded_files);
++ list = g_list_sort(list, (GCompareFunc) g_str_equal);
+ for (l = list; l != NULL; l = l->next)
+ {
+- gchar *path;
+-
+- path = g_build_filename (MATECC_KEYBINDINGS_DIR, l->data, NULL);
+- append_keys_to_tree_from_file (builder, path, wm_keybindings);
+- g_free (l->data);
+- g_free (path);
++ g_autofree gchar *path = NULL;
++ path = g_build_filename (g_hash_table_lookup (loaded_files, l->data), l->data, NULL);
++ g_debug ("Keybinding file: %s", path);
++ append_keys_to_tree_from_file (builder, path, wm_keybindings);
+ }
+ g_list_free (list);
++ g_hash_table_destroy (loaded_files);
+
+ /* Load custom shortcuts _after_ system-provided ones,
+ * since some of the custom shortcuts may also be listed
diff --git a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
new file mode 100644
index 00000000000..58515a492b5
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, isocodes, gnome3, gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-desktop";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1hr4r69855csqrcaqpbcyplsy4cwjfz7gabps2pzkh5132jycfr0";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gnome3.dconf
+ gtk3
+ isocodes
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Library with common API for various MATE modules";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/nixpkgs/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
new file mode 100644
index 00000000000..7db01f59816
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, autoreconfHook, gtk3, mate, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-icon-theme-faenza";
+ version = "1.20.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna";
+ };
+
+ nativeBuildInputs = [ autoreconfHook gtk3 ];
+
+ buildInputs = [ mate.mate-icon-theme hicolor-icon-theme ];
+
+ postInstall = ''
+ for theme in "$out"/share/icons/*; do
+ gtk-update-icon-cache "$theme"
+ done
+ '';
+
+ meta = {
+ description = "Faenza icon theme from MATE";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
new file mode 100644
index 00000000000..9df0d0ce5a8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, librsvg, hicolor-icon-theme, gtk3 }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-icon-theme";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1pn1xbmr4w4mi45nwk1qh18z9rlngmkhp9bw671yn4k6sii8fi3k";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool iconnamingutils ];
+
+ buildInputs = [ librsvg hicolor-icon-theme ];
+
+ postInstall = ''
+ for theme in "$out"/share/icons/*; do
+ "${gtk3.out}/bin/gtk-update-icon-cache" "$theme"
+ done
+ '';
+
+ meta = {
+ description = "Icon themes from MATE";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.lgpl3;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix
new file mode 100644
index 00000000000..e1a6e874d1d
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libindicator-gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-indicator-applet";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0zad81qvcin4m329hfxhv4a5j8gf4gj8944mvjrdgdh71bzan2x1";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libindicator-gtk3
+ mate.mate-panel
+ hicolor-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/mate-desktop/mate-indicator-applet;
+ description = "MATE panel indicator applet";
+ longDescription = ''
+ A small applet to display information from various applications
+ consistently in the panel.
+
+ The indicator applet exposes Ayatana Indicators in the MATE Panel.
+ Ayatana Indicators are an initiative by Canonical to provide crisp and
+ clean system and application status indication. They take the form of
+ an icon and associated menu, displayed (usually) in the desktop panel.
+ Existing indicators include the Message Menu, Battery Menu and Sound
+ menu.
+ '';
+ license = with licenses; [ gpl3Plus lgpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
new file mode 100644
index 00000000000..93c765a9953
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libtool, libxml2, libcanberra-gtk3, gtk3, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-media";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "13g1n2ddgr1yxgl4fsqj3sgb9344b756kam9v3sq6vh0bxlr4yf2";
+ };
+
+ buildInputs = [
+ libxml2
+ libcanberra-gtk3
+ gtk3
+ mate.libmatemixer
+ mate.mate-panel
+ mate.mate-desktop
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ libtool
+ wrapGAppsHook
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Media tools for MATE";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo maintainers.chpatrick ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
new file mode 100644
index 00000000000..e37a270f9dc
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gobject-introspection, python3 }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-menus";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1lkakbf2f1815c146z4xp5f0h4lim6jzr02681wbvzalc6k97v5c";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool gobject-introspection ];
+
+ buildInputs = [ glib python3 ];
+
+ makeFlags = [
+ "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/"
+ "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Menu system for MATE";
+ homepage = https://github.com/mate-desktop/mate-menus;
+ license = with licenses; [ gpl2 lgpl2 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix b/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix
new file mode 100644
index 00000000000..51d23e475ff
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libwnck3, libfakekey, libXtst, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-netbook";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "00n162bskbvxhy4k2w14f9zwlsg3wgi43228ssx7sc2p95psmm64";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libwnck3
+ libfakekey
+ libXtst
+ mate.mate-panel
+ ];
+
+ meta = with stdenv.lib; {
+ description = "MATE utilities for netbooks";
+ longDescription = ''
+ MATE utilities for netbooks are an applet and a daemon to maximize
+ windows and move their titles on the panel.
+
+ Installing these utilities is recommended for netbooks and similar
+ devices with low resolution displays.
+ '';
+ homepage = https://mate-desktop.org;
+ license = with licenses; [ gpl3 lgpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
new file mode 100644
index 00000000000..d53ae8efa35
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, libcanberra-gtk3,
+ libnotify, libwnck3, gtk3, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-notification-daemon";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "06z3xczhz5diy4kk7b8lrzljrnql6fz0n1jyy916cf8pnnanpg0j";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ libcanberra-gtk3
+ libnotify
+ libwnck3
+ gtk3
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ meta = with stdenv.lib; {
+ description = "Notification daemon for MATE";
+ homepage = https://github.com/mate-desktop/mate-notification-daemon;
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
new file mode 100644
index 00000000000..39d2c1812cb
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, glib, libwnck3, librsvg, libxml2, gnome3, gtk3, mate, hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-panel";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0pb9dpgsfjp6gsldg4ad2jz23xdvjfarmz4cjwkpakygkq5i6dma";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ intltool
+ itstool
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ libwnck3
+ librsvg
+ libxml2
+ gtk3
+ gnome3.dconf
+ mate.libmateweather
+ mate.mate-desktop
+ mate.mate-menus
+ hicolor-icon-theme
+ ];
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ makeFlags = [
+ "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/"
+ "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The MATE panel";
+ homepage = https://github.com/mate-desktop/mate-panel;
+ license = with licenses; [ gpl2 lgpl2 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
new file mode 100644
index 00000000000..253472e3987
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, gobject-introspection, libappindicator-gtk3, libindicator-gtk3, polkit }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-polkit";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "02r8n71xflhvw2hsf6g4svdahzyg3r4n6xamasyzqfhyn0mqmjy0";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ intltool
+ pkgconfig
+ ];
+
+ buildInputs = [
+ gtk3
+ libappindicator-gtk3
+ libindicator-gtk3
+ polkit
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Integrates polkit authentication for MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = [ licenses.gpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
new file mode 100644
index 00000000000..6ba6ac205ce
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, itstool, libxml2, mate, libnotify, libcanberra-gtk3, dbus-glib, upower, gnome3, gtk3, libtool, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-power-manager";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "06vs2w44l1s25j0mifkid02yncw0nvdxw8r4pp2jm18kxan4frms";
+ };
+
+ buildInputs = [
+ glib
+ itstool
+ libxml2
+ libcanberra-gtk3
+ gtk3
+ gnome3.libgnome-keyring
+ libnotify
+ dbus-glib
+ upower
+ mate.mate-panel
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ libtool
+ wrapGAppsHook
+ ];
+
+ configureFlags = [ "--enable-applets" ];
+
+ meta = with stdenv.lib; {
+ description = "The MATE Power Manager";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo maintainers.chpatrick ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
new file mode 100644
index 00000000000..d1c1e481d70
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, dbus-glib, libXScrnSaver, libnotify, pam, systemd, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-screensaver";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0c4qq5szsbfrz8hgkmlby2k7f1qs8kgqf2shd63z0pc8p6f47vvc";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ dbus-glib
+ libXScrnSaver
+ libnotify
+ pam
+ systemd
+ mate.mate-desktop
+ mate.mate-menus
+ ];
+
+ configureFlags = [ "--without-console-kit" ];
+
+ makeFlags = "DBUS_SESSION_SERVICE_DIR=$(out)/etc";
+
+ meta = with stdenv.lib; {
+ description = "Screen saver and locker for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = with licenses; [ gpl2Plus lgpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
new file mode 100644
index 00000000000..bd9ed9f6cbe
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gtk3, libxml2, libxslt, libatasmart, libnotify, lm_sensors, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-sensors-applet";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0rv19jxxviqqwk2wlhxlm98jsxa26scvs7ilp2i6plhn3ap2alq3";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ # maybe add nvidia-settings later on
+ buildInputs = [
+ gtk3
+ libxml2
+ libxslt
+ libatasmart
+ libnotify
+ lm_sensors
+ mate.mate-panel
+ hicolor-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/mate-desktop/mate-sensors-applet;
+ description = "MATE panel applet for hardware sensors";
+ license = with licenses; [ gpl2Plus ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
new file mode 100644
index 00000000000..b7735ec77fe
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, intltool, xtrans, dbus-glib, systemd,
+ libSM, libXtst, gtk3, hicolor-icon-theme, mate,
+ wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "mate-session-manager";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1ix8picxgc28m5zd0ww3zvzw6rz38wvzsrbqw28hghrfg926h6ig";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ xtrans
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ dbus-glib
+ systemd
+ libSM
+ libXtst
+ gtk3
+ mate.mate-desktop
+ hicolor-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ description = "MATE Desktop session manager";
+ homepage = https://github.com/mate-desktop/mate-session-manager;
+ license = with licenses; [ gpl2 lgpl2 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
new file mode 100644
index 00000000000..5ee995402ec
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, dbus-glib, libxklavier,
+ libcanberra-gtk3, libnotify, nss, polkit, gnome3, gtk3, mate,
+ pulseaudioSupport ? stdenv.config.pulseaudio or true, libpulseaudio,
+ wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-settings-daemon";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0yr5v6b9hdk20j29smbw1k4fkyg82i5vlflmgly0vi5whgc74gym";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ dbus-glib
+ libxklavier
+ libcanberra-gtk3
+ libnotify
+ nss
+ polkit
+ gtk3
+ gnome3.dconf
+ mate.mate-desktop
+ mate.libmatekbd
+ mate.libmatemixer
+ ] ++ stdenv.lib.optional pulseaudioSupport libpulseaudio;
+
+ configureFlags = stdenv.lib.optional pulseaudioSupport "--enable-pulse";
+
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+ meta = with stdenv.lib; {
+ description = "MATE settings daemon";
+ homepage = https://github.com/mate-desktop/mate-settings-daemon;
+ license = with licenses; [ gpl2 lgpl21 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
new file mode 100644
index 00000000000..6f5993cfc35
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gtkmm3, libxml2, libgtop, libwnck3, librsvg, systemd, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-system-monitor";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0yh1sh5snd7ivchh6l9rbn1s7ia4j5ihhzhqkyjnhr8ln59dvcbm";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtkmm3
+ libxml2
+ libgtop
+ libwnck3
+ librsvg
+ systemd
+ ];
+
+ configureFlags = [ "--enable-systemd" ];
+
+ meta = with stdenv.lib; {
+ description = "System monitor for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = [ licenses.gpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
new file mode 100644
index 00000000000..7ec9944aa0e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, itstool, libxml2, mate, gnome3, gtk3, vte, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-terminal";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "08210ry5lrivsgzqpdaxrchhpj0n5s1q0x4pxmwdpnksjpcj11mn";
+ };
+
+ buildInputs = [
+ glib
+ itstool
+ libxml2
+
+ mate.mate-desktop
+
+ vte
+ gtk3
+ gnome3.dconf
+ ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ wrapGAppsHook
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The MATE Terminal Emulator";
+ homepage = https://mate-desktop.org;
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix b/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix
new file mode 100644
index 00000000000..9ed5515ea3e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-themes/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, mate, gtk2, gtk3,
+ gtk_engines, gtk-engine-murrine, gdk-pixbuf, librsvg }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-themes";
+ version = "3.22.20";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/themes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0c3dhf8p9nc2maky4g9xr04iil9wwbdkmhpzynlc6lfg4ksqq2bx";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool gtk3 ];
+
+ buildInputs = [ mate.mate-icon-theme gtk2 gtk_engines gdk-pixbuf librsvg ];
+
+ propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+
+ postInstall = ''
+ gtk-update-icon-cache "$out"/share/icons/ContrastHigh
+ '';
+
+ meta = {
+ description = "A set of themes from MATE";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.lgpl21;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
new file mode 100644
index 00000000000..a9a0e171231
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, intltool, itstool, libxml2, yelp }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-user-guide";
+ version = "1.22.2";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "01kcszsjiriqp4hf1k4fhazi2yfqlkn415sfgx0jw0p821bzqf2h";
+ };
+
+ nativeBuildInputs = [ itstool intltool libxml2 ];
+
+ buildInputs = [ yelp ];
+
+ meta = with stdenv.lib; {
+ description = "MATE User Guide";
+ homepage = https://mate-desktop.org;
+ license = with licenses; [ gpl2Plus fdl12 ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix b/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix
new file mode 100644
index 00000000000..999bee2e5d1
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gtk3, dbus-glib, libnotify, libxml2, libcanberra-gtk3, mod_dnssd, apacheHttpd, hicolor-icon-theme, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-user-share";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1krsar1pwa8720qz2dckcg0f6z9mvfk49djdxaz1afvi7blmqd6k";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ libxml2
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ dbus-glib
+ libnotify
+ libcanberra-gtk3
+ mate.caja
+ hicolor-icon-theme
+ # Should mod_dnssd and apacheHttpd be runtime dependencies?
+ # In gnome-user-share they are not.
+ #mod_dnssd
+ #apacheHttpd
+ ];
+
+ preConfigure = ''
+ sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
+ -e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
+ -i data/dav_user_2.4.conf
+ '';
+
+ configureFlags = [
+ "--with-httpd=${apacheHttpd.out}/bin/httpd"
+ "--with-modules-path=${apacheHttpd.dev}/modules"
+ "--with-cajadir=$(out)/lib/caja/extensions-2.0"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "User level public file sharing for the MATE desktop";
+ homepage = https://github.com/mate-desktop/mate-user-share;
+ license = with licenses; [ gpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
new file mode 100644
index 00000000000..7775173611e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gtk3, libxml2, libgtop, libcanberra-gtk3, inkscape, mate, hicolor-icon-theme, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "mate-utils";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0768y6x33ljc9dxjlfmvplsn4lrxj5xhjddbyab9h6pqav8527rg";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ inkscape
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ libgtop
+ libcanberra-gtk3
+ libxml2
+ mate.mate-panel
+ hicolor-icon-theme
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Utilities for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = with licenses; [ gpl2Plus lgpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mozo/default.nix b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
new file mode 100644
index 00000000000..36f8fecb192
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3, fetchurl, pkgconfig, intltool, mate, gtk3, glib, wrapGAppsHook, gobject-introspection }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "mozo";
+ version = "1.22.1";
+
+ format = "other";
+ doCheck = false;
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "0yffp7p3b6ynpf7ck21klym7h09l35amnyahm71dxbv2kzj6hlqh";
+ };
+
+ nativeBuildInputs = [ pkgconfig intltool gobject-introspection wrapGAppsHook ];
+
+ propagatedBuildInputs = [ mate.mate-menus python3.pkgs.pygobject3 ];
+
+ buildInputs = [ gtk3 glib ];
+
+ meta = with stdenv.lib; {
+ description = "MATE Desktop menu editor";
+ homepage = https://github.com/mate-desktop/mozo;
+ license = with licenses; [ lgpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/pluma/default.nix b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
new file mode 100644
index 00000000000..cfbe33dd380
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, isocodes, enchant, libxml2, python3, gnome3, gtksourceview3, libpeas, mate, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "pluma";
+ version = "1.22.1";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "14d5c5fg31d7br9h1y3gdcr53j4sxlgybf326jvdcw8mgy91k3dg";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ itstool
+ isocodes
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ enchant
+ libxml2
+ python3
+ gtksourceview3
+ libpeas
+ gnome3.adwaita-icon-theme
+ mate.mate-desktop
+ ];
+
+ meta = {
+ description = "Powerful text editor for the MATE desktop";
+ homepage = https://mate-desktop.org;
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/python-caja/default.nix b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
new file mode 100644
index 00000000000..42a8e328a16
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, mate, python3Packages }:
+
+stdenv.mkDerivation rec {
+ pname = "python-caja";
+ version = "1.22.0";
+
+ src = fetchurl {
+ url = "http://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1zwdjvxci72j0181nlfq6912lw3aq8j3746brlp7wlzn22qp7b0k";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ intltool
+ python3Packages.wrapPython
+ ];
+
+ buildInputs = [
+ gtk3
+ mate.caja
+ python3Packages.python
+ python3Packages.pygobject3
+ ];
+
+ configureFlags = [ "--with-cajadir=$$out/lib/caja/extensions-2.0" ];
+
+ meta = with stdenv.lib; {
+ description = "Python binding for Caja components";
+ homepage = https://github.com/mate-desktop/python-caja;
+ license = [ licenses.gpl2Plus ];
+ platforms = platforms.unix;
+ maintainers = [ maintainers.romildo ];
+ };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/update.sh b/nixpkgs/pkgs/desktops/mate/update.sh
new file mode 100755
index 00000000000..fe294ae4985
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/update.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p libarchive curl common-updater-scripts
+
+set -eu -o pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+root=../../..
+export NIXPKGS_ALLOW_UNFREE=1
+
+mate_version=1.22
+theme_version=3.22
+materepo=https://pub.mate-desktop.org/releases/${mate_version}
+themerepo=https://pub.mate-desktop.org/releases/themes/${theme_version}
+
+version() {
+ (cd "$root" && nix-instantiate --eval --strict -A "$1.version" | tr -d '"')
+}
+
+update_package() {
+ local p=$1
+ echo $p
+ echo "# $p" >> git-commits.txt
+
+ local repo
+ if [ "$p" = "mate-themes" ]; then
+ repo=$themerepo
+ else
+ repo=$materepo
+ fi
+
+ local p_version_old=$(version mate.$p)
+ local p_versions=$(curl -sS ${repo}/ | sed -rne "s/.*\"$p-([0-9]+\\.[0-9]+\\.[0-9]+)\\.tar\\.xz.*/\\1/p")
+ local p_version=$(echo $p_versions | sed -e 's/ /\n/g' | sort -t. -k 1,1n -k 2,2n -k 3,3n | tail -n1)
+
+ if [[ -z "$p_version" ]]; then
+ echo "unavailable $p"
+ echo "# $p not found" >> git-commits.txt
+ echo
+ return
+ fi
+
+ if [[ "$p_version" = "$p_version_old" ]]; then
+ echo "nothing to do, $p $p_version is current"
+ echo
+ return
+ fi
+
+ # Download package and save hash and file path.
+ local url="$repo/$p-${p_version}.tar.xz"
+ mapfile -t prefetch < <(nix-prefetch-url --print-path "$url")
+ local hash=${prefetch[0]}
+ local path=${prefetch[1]}
+ echo "$p: $p_version_old -> $p_version"
+ (cd "$root" && update-source-version mate.$p "$p_version" "$hash")
+ echo " git add pkgs/desktops/mate/$p" >> git-commits.txt
+ echo " git commit -m \"mate.$p: $p_version_old -> $p_version\"" >> git-commits.txt
+ echo
+}
+
+for d in $(ls -A --indicator-style=none); do
+ if [ -d $d ]; then
+ update_package $d
+ fi
+done