about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/xfce
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/xfce')
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix66
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/configure-gio.patch11
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix44
-rw-r--r--nixpkgs/pkgs/desktops/xfce/art/xfce4-icon-theme.nix23
-rw-r--r--nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes.nix21
-rw-r--r--nixpkgs/pkgs/desktops/xfce/automakeAddFlags.sh7
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/exo/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix70
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/thunarx_plugins_directory.patch48
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix34
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh12
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch24
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix40
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix30
-rw-r--r--nixpkgs/pkgs/desktops/xfce/default.nix223
-rw-r--r--nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix40
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix24
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix40
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix24
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix40
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix27
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix27
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix31
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix25
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix46
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix24
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix31
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix31
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix50
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch12
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix29
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix34
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/xfce/thunar-plugins/archive/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix40
72 files changed, 2116 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
new file mode 100644
index 000000000000..736e89a4f444
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, file, which, intltool, gobject-introspection,
+  findutils, xdg_utils, dconf, gtk3, python3Packages,
+  wrapGAppsHook
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "catfish";
+  version = "1.4.12";
+
+  src = fetchurl {
+    url = "https://archive.xfce.org/src/apps/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "0jhk4x97vip6h7rsw8hbwzfjmz55w6dpcj9v96m54xr15gh31yy3";
+  };
+
+  nativeBuildInputs = [
+    python3Packages.distutils_extra
+    file
+    which
+    intltool
+    gobject-introspection # for setup hook populating GI_TYPELIB_PATH
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    dconf
+    python3Packages.pyxdg
+    python3Packages.ptyprocess
+    python3Packages.pycairo
+    gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943
+  ];
+
+  propagatedBuildInputs = [
+    python3Packages.dbus-python
+    python3Packages.pygobject3
+    python3Packages.pexpect
+    xdg_utils
+    findutils
+  ];
+
+  # Explicitly set the prefix dir in "setup.py" because setuptools is
+  # not using "$out" as the prefix when installing catfish data. In
+  # particular the variable "__catfish_data_directory__" in
+  # "catfishconfig.py" is being set to a subdirectory in the python
+  # path in the store.
+  postPatch = ''
+    sed -i "/^        if self.root/i\\        self.prefix = \"$out\"" setup.py
+  '';
+
+  # Disable check because there is no test in the source distribution
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://docs.xfce.org/apps/catfish/start;
+    description = "Handy file search tool";
+    longDescription = ''
+      Catfish is a handy file searching tool. The interface is
+      intentionally lightweight and simple, using only GTK 3.
+      You can configure it to your needs by using several command line
+      options.
+    '';
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
new file mode 100644
index 000000000000..32486aab981f
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -0,0 +1,16 @@
+{ mkXfceDerivation, exo, gtk3, gvfs, glib }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "gigolo";
+  version = "0.5.0";
+
+  sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";
+
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ gtk3 glib gvfs ];
+
+  meta = {
+    description = "A frontend to easily manage connections to remote filesystems";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
new file mode 100644
index 000000000000..6f841958c795
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -0,0 +1,19 @@
+{ mkXfceDerivation, exo, glib, gtk3, gtksourceview3, xfconf }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "mousepad";
+  version = "0.4.2";
+
+  sha256 = "0a35vaq4l0d8vzw7hqpvbgkr3wj1sqr2zvj7bc5z4ikz2cppqj7p";
+
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ glib gtk3 gtksourceview3 xfconf ];
+
+  # See https://github.com/NixOS/nixpkgs/issues/36468
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  meta = {
+    description = "A simple text editor for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix
new file mode 100644
index 000000000000..4a48cc83dda4
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchpatch, mkXfceDerivation, dbus-glib, gtk2, libical, libnotify, tzdata
+, popt, libxfce4ui, xfce4-panel, withPanelPlugin ? true }:
+
+assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null;
+
+let
+  inherit (lib) optionals;
+in
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "orage";
+  version = "4.12.1";
+
+  sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m";
+  buildInputs = [ dbus-glib gtk2 libical libnotify popt ]
+    ++ optionals withPanelPlugin [ libxfce4ui xfce4-panel ];
+
+  postPatch = ''
+    substituteInPlace src/parameters.c        --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+    substituteInPlace src/tz_zoneinfo_read.c  --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+    substituteInPlace tz_convert/tz_convert.c --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+  '';
+
+  postConfigure = "rm -rf libical"; # ensure pkgs.libical is used instead of one included in the orage sources
+
+  patches = [
+    # Fix build with libical 3.0
+    (fetchpatch {
+      name = "fix-libical3.patch";
+      url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f;
+      sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf";
+    })
+  ];
+
+  meta = {
+    description = "A simple calendar application with reminders";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
new file mode 100644
index 000000000000..20b899165f09
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
@@ -0,0 +1,37 @@
+{ mkXfceDerivation, dbus, dbus-glib
+, gst_all_1, gtk3, libnotify, libxfce4ui, libxfce4util
+, taglib, xfconf }:
+
+# Doesn't seem to find H.264 codec even though built with gst-plugins-bad.
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "parole";
+  version = "1.0.4";
+
+  sha256 = "18j4bmny37crryh4pvxcjjvj99mln6ljq2vy69awxhvrjx9ljv13";
+
+  postPatch = ''
+    substituteInPlace src/plugins/mpris2/Makefile.am \
+      --replace GST_BASE_CFLAGS GST_VIDEO_CFLAGS
+  '';
+
+  buildInputs = with gst_all_1; [
+    dbus
+    dbus-glib
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gtk3
+    libnotify
+    libxfce4ui
+    libxfce4util
+    taglib
+    xfconf
+  ];
+
+  meta = {
+    description = "Modern simple media player";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
new file mode 100644
index 000000000000..8766bd302ab3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -0,0 +1,17 @@
+{ mkXfceDerivation, automakeAddFlags, exo, gtk3, glib, libexif
+, libxfce4ui, libxfce4util, xfconf }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "ristretto";
+  version = "0.10.0";
+
+  sha256 = "07h7wbq3xh2ac6q4kp2ai1incfn0zfxxngap7hzqx47a5xw2mrm8";
+
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
+
+  meta = {
+    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix
new file mode 100644
index 000000000000..08f2bd511a87
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix
@@ -0,0 +1,12 @@
+{ mkXfceDerivation, docbook_xsl, exo, gtk3, libburn, libisofs, libxfce4ui, libxslt }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfburn";
+  version = "0.6.1";
+
+  sha256 = "0a1ly79x7j5pgr3vbsabb4i0jd5rryaigj9z8iqzr8p9miypx20v";
+
+  nativeBuildInputs = [ libxslt docbook_xsl ];
+  buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/configure-gio.patch b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/configure-gio.patch
new file mode 100644
index 000000000000..787b63511a23
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/configure-gio.patch
@@ -0,0 +1,11 @@
+diff -urNZ a/configure.ac.in b/configure.ac.in
+--- a/configure.ac.in	2017-12-16 19:46:13.784914017 +0000
++++ b/configure.ac.in	2017-12-16 19:46:38.612477052 +0000
+@@ -53,6 +53,7 @@
+ dnl ***********************************
+ dnl *** Check for required packages ***
+ dnl ***********************************
++XDT_CHECK_PACKAGE([GIO], [gio-unix-2.0], [2.32.0])
+ XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.24.0])
+ XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.20.0])
+ XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.12.0])
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
new file mode 100644
index 000000000000..b2682080216c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -0,0 +1,23 @@
+{ mkXfceDerivation, automakeAddFlags, gtk3, libxfce4ui, libxfce4util, xfce4-panel }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-dict";
+  version = "0.8.2";
+
+  sha256 = "1zbb0k0984ny7wy4gbk6ymkh87rbfakpim54yq4r3h5ymslx7iv7";
+
+  patches = [ ./configure-gio.patch ];
+
+  nativeBuildInputs = [ automakeAddFlags ];
+
+  postPatch = ''
+    automakeAddFlags lib/Makefile.am libdict_la_CFLAGS GIO_CFLAGS
+  '';
+
+  buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel ];
+
+  meta = {
+    description = "A Dictionary Client for the Xfce desktop environment";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
new file mode 100644
index 000000000000..a991e8c81807
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -0,0 +1,16 @@
+{ mkXfceDerivation, glib, exo, gtk3, libnotify, libxfce4ui, libxfce4util
+, xfce4-panel, xfconf }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-notifyd";
+  version = "0.4.4";
+
+  sha256 = "1lmm9h3ych8dz9jpjkxg91f9ln14xs527nxjxsryks00kmqk4kai";
+
+  buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "Simple notification daemon for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
new file mode 100644
index 000000000000..012486baac9b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, glib-networking }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-screenshooter";
+  version = "1.9.5";
+
+  sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";
+
+  buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
+
+  meta = {
+    description = "Screenshot utility for the Xfce desktop";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
new file mode 100644
index 000000000000..e3d8b4b87d94
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -0,0 +1,16 @@
+{ lib, mkXfceDerivation, exo, gtk3, libwnck3, libXmu }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-taskmanager";
+  version = "1.2.2";
+
+  sha256 = "03js0pmhrybxa7hrp3gx4rm7j061ansv0bp2dwhnbrdpmzjysysc";
+
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ gtk3 libwnck3 libXmu ];
+
+  meta = {
+    description = "Easy to use task manager for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
new file mode 100644
index 000000000000..3b9cd268d55a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2 }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-terminal";
+  version = "0.8.8";
+
+  sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp";
+
+  buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
+
+  meta = {
+    description = "A modern terminal emulator";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
new file mode 100644
index 000000000000..413c04a84cc1
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
@@ -0,0 +1,17 @@
+{ lib, mkXfceDerivation, gtk3, libnotify, libpulseaudio, keybinder3, xfconf }:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfce4-volumed-pulse";
+  version = "0.2.3";
+
+  sha256 = "1rsjng9qmq7vzrx5bfxq76h63y501cfl1mksrxkf1x39by9r628j";
+
+  buildInputs = [ gtk3 libnotify libpulseaudio keybinder3 xfconf ];
+
+  meta = with lib; {
+    description = "A volume keys control daemon for Xfce using pulseaudio";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
new file mode 100644
index 000000000000..dafb72582b31
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, makeWrapper
+, gstreamer, gtk2, gst-plugins-base, libnotify
+, keybinder, xfconf
+}:
+
+let
+  # The usual Gstreamer plugins package has a zillion dependencies
+  # that we don't need for a simple mixer, so build a minimal package.
+  gst_plugins_minimal = gst-plugins-base.override {
+    minimalDeps = true;
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-volumed";
+  ver_maj = "0.1";
+  ver_min = "13";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs =
+    [ gstreamer gst_plugins_minimal gtk2
+      keybinder xfconf libnotify
+    ];
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+  postInstall =
+    ''
+      wrapProgram "$out/bin/xfce4-volumed" \
+        --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
+    '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.xfce.org/projects/xfce4-volumed; # referenced but inactive
+    description = "A volume keys control daemon for the Xfce desktop environment";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.abbradar ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
new file mode 100644
index 000000000000..a17c29f6723e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -0,0 +1,44 @@
+{ mkXfceDerivation
+, clutter
+, libXcomposite
+, libXinerama
+, libXdamage
+, libX11
+, libwnck3
+, libxfce4ui
+, libxfce4util
+, garcon
+, xfconf
+, gtk3
+, glib
+, dbus-glib
+}:
+
+mkXfceDerivation {
+  category = "apps";
+  pname = "xfdashboard";
+  version = "0.7.5";
+  rev = "0.7.5";
+
+  sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i";
+
+  buildInputs = [
+    clutter
+    dbus-glib
+    garcon
+    glib
+    gtk3
+    libX11
+    libXcomposite
+    libXdamage
+    libXinerama
+    libwnck3
+    libxfce4ui
+    libxfce4util
+    xfconf
+  ];
+
+  meta = {
+    description = "Gnome shell like dashboard";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/art/xfce4-icon-theme.nix b/nixpkgs/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
new file mode 100644
index 000000000000..6ac601c6685e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-icon-theme";
+  ver_maj = "4.4";
+  ver_min = "3";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool gtk2 ];
+
+  meta = {
+    homepage = https://www.xfce.org/;
+    description = "Icons for Xfce";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes.nix b/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes.nix
new file mode 100644
index 000000000000..783fbb13c83c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/art/xfwm4-themes.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfwm4-themes";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  meta = with stdenv.lib; {
+    homepage = https://www.xfce.org/;
+    description = "Themes for Xfce";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/automakeAddFlags.sh b/nixpkgs/pkgs/desktops/xfce/automakeAddFlags.sh
new file mode 100644
index 000000000000..92d5659d05ca
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/automakeAddFlags.sh
@@ -0,0 +1,7 @@
+automakeAddFlags() {
+    local file="$1"
+    local target="$2"
+    local source="$3"
+
+    sed "/$target/a\$($source) \\\\" -i $file
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix b/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix
new file mode 100644
index 000000000000..59ab5823314e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/exo/default.nix
@@ -0,0 +1,20 @@
+{ mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3
+, libxfce4ui, libxfce4util }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "exo";
+  version = "0.12.8";
+
+  sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5";
+
+  nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ];
+  buildInputs = [ gtk3 glib libxfce4ui libxfce4util ];
+
+  # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  meta = {
+    description = "Application library for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix b/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix
new file mode 100644
index 000000000000..69184f2afa88
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/garcon/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "garcon";
+  version = "0.6.4";
+
+  sha256 = "0pamhp1wffiw638s66nws2mpzmwkhvhb6iwccfy8b0kyr57wipjv";
+
+  buildInputs = [ gtk3 libxfce4ui libxfce4util ];
+
+  meta = {
+    description = "Xfce menu support library";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
new file mode 100644
index 000000000000..79c8ec74b626
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -0,0 +1,23 @@
+{ lib, mkXfceDerivation, gobject-introspection, gtk2, gtk3, libICE, libSM
+, libstartup_notification, libxfce4util, xfconf }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "libxfce4ui";
+  version = "4.14.1";
+
+  sha256 = "0fnncf30s51qhgixn57z4d021pjjhzgsg2x69w4dy68vff2347qy";
+
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs =  [ gtk2 gtk3 libstartup_notification xfconf ];
+  propagatedBuildInputs = [ libxfce4util libICE libSM ];
+
+  configureFlags = [
+    "--with-vendor-info='NixOS'"
+  ];
+
+  meta = with lib; {
+    description = "Widgets library for Xfce";
+    license = licenses.lgpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
new file mode 100644
index 000000000000..4540d2352511
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
@@ -0,0 +1,16 @@
+{ lib, mkXfceDerivation, gobject-introspection }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "libxfce4util";
+  version = "4.14.0";
+
+  sha256 = "0vq16bzmnykiikg4dhiaj0qbyj76nkdd54j6k6n568h3dc9ix6q4";
+
+  nativeBuildInputs = [ gobject-introspection ];
+
+  meta = with lib; {
+    description = "Extension library for Xfce";
+    license = licenses.lgpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix
new file mode 100644
index 000000000000..fc6db0fcce4f
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar-volman/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, exo, gtk3, libgudev, libxfce4ui, libxfce4util, xfconf }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "thunar-volman";
+  version = "0.9.5";
+
+  buildInputs = [ exo gtk3 libgudev libxfce4ui libxfce4util xfconf ];
+
+  sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
+
+  meta = {
+    description = "Thunar extension for automatic management of removable drives and media";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
new file mode 100644
index 000000000000..11220141d2a0
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/default.nix
@@ -0,0 +1,70 @@
+{ mkXfceDerivation
+, lib
+, docbook_xsl
+, exo
+, gdk-pixbuf
+, gtk3
+, libgudev
+, libnotify
+, libX11
+, libxfce4ui
+, libxfce4util
+, libxslt
+, xfconf
+, gobject-introspection
+, gvfs
+, makeWrapper
+, symlinkJoin
+, thunarPlugins ? []
+}:
+
+let unwrapped = mkXfceDerivation {
+  category = "xfce";
+  pname = "thunar";
+  version = "1.8.9";
+
+  sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w";
+
+  nativeBuildInputs = [
+    docbook_xsl
+    gobject-introspection
+    libxslt
+  ];
+
+  buildInputs = [
+    exo
+    gdk-pixbuf
+    gtk3
+    gvfs
+    libX11
+    libgudev
+    libnotify
+    libxfce4ui
+    libxfce4util
+    xfconf
+  ];
+
+  patches = [
+    ./thunarx_plugins_directory.patch
+  ];
+
+  # the desktop file … is in an insecure location»
+  # which pops up when invoking desktop files that are
+  # symlinks to the /nix/store
+  #
+  # this error was added by this commit:
+  # https://github.com/xfce-mirror/thunar/commit/1ec8ff89ec5a3314fcd6a57f1475654ddecc9875
+  postPatch = ''
+    sed -i -e 's|thunar_dialogs_show_insecure_program (parent, _(".*"), file, exec)|1|' thunar/thunar-file.c
+  '';
+
+  meta = {
+    description = "Xfce file manager";
+  };
+};
+
+in if thunarPlugins == [] then unwrapped
+  else import ./wrapper.nix {
+    inherit makeWrapper symlinkJoin thunarPlugins lib;
+    thunar = unwrapped;
+  }
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/thunarx_plugins_directory.patch b/nixpkgs/pkgs/desktops/xfce/core/thunar/thunarx_plugins_directory.patch
new file mode 100644
index 000000000000..594a81c829ef
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/thunarx_plugins_directory.patch
@@ -0,0 +1,48 @@
+diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c
+index 94b11545..1f66c982 100644
+--- a/thunarx/thunarx-provider-factory.c
++++ b/thunarx/thunarx-provider-factory.c
+@@ -150,12 +150,19 @@ static GList*
+ thunarx_provider_factory_load_modules (ThunarxProviderFactory *factory)
+ {
+   ThunarxProviderModule *module;
++  const gchar           *thunar_dir;
+   const gchar           *name;
+   GList                 *modules = NULL;
+   GList                 *lp;
+   GDir                  *dp;
+ 
+-  dp = g_dir_open (THUNARX_DIRECTORY, 0, NULL);
++  thunar_dir = g_getenv("THUNARX_MODULE_DIR");
++  if (NULL == thunar_dir)
++    {
++      thunar_dir = THUNARX_DIRECTORY;
++    }
++
++  dp = g_dir_open (thunar_dir, 0, NULL);
+   if (G_LIKELY (dp != NULL))
+     {
+       /* determine the types for all existing plugins */
+diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c
+index 023ad2ae..b1d1be8f 100644
+--- a/thunarx/thunarx-provider-module.c
++++ b/thunarx/thunarx-provider-module.c
+@@ -174,10 +174,17 @@ static gboolean
+ thunarx_provider_module_load (GTypeModule *type_module)
+ {
+   ThunarxProviderModule *module = THUNARX_PROVIDER_MODULE (type_module);
++  const gchar           *thunar_dir;
+   gchar                 *path;
+ 
++  thunar_dir = g_getenv("THUNARX_MODULE_DIR");
++  if (NULL == thunar_dir)
++    {
++      thunar_dir = THUNARX_DIRECTORY;
++    }
++
+   /* load the module using the runtime link editor */
+-  path = g_build_filename (THUNARX_DIRECTORY, type_module->name, NULL);
++  path = g_build_filename (thunar_dir, type_module->name, NULL);
+   module->library = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
+   g_free (path);
+ 
diff --git a/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix b/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix
new file mode 100644
index 000000000000..cc44e6624571
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/thunar/wrapper.nix
@@ -0,0 +1,34 @@
+{ makeWrapper, symlinkJoin, thunar, thunarPlugins, lib }:
+
+symlinkJoin {
+  name = "thunar-with-plugins-${thunar.version}";
+
+  paths = [ thunar ] ++ thunarPlugins;
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    wrapProgram "$out/bin/thunar" \
+      --set "THUNARX_MODULE_DIR" "$out/lib/thunarx-3"
+
+    wrapProgram "$out/bin/thunar-settings" \
+      --set "THUNARX_MODULE_DIR" "$out/lib/thunarx-3"
+
+    for file in "lib/systemd/user/thunar.service" "share/dbus-1/services/org.xfce.FileManager.service" \
+      "share/dbus-1/services/org.xfce.Thunar.FileManager1.service" \
+      "share/dbus-1/services/org.xfce.Thunar.service"
+    do
+      rm -f "$out/$file"
+      substitute "${thunar}/$file" "$out/$file" \
+        --replace "${thunar}" "$out"
+    done
+  '';
+
+   meta = with lib; {
+    inherit (thunar.meta) homepage license platforms maintainers;
+
+    description = thunar.meta.description + optionalString
+      (0 != length thunarPlugins)
+      " (with plugins: ${concatStrings (intersperse ", " (map (x: x.name) thunarPlugins))})";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
new file mode 100644
index 000000000000..b795007ca7c1
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -0,0 +1,39 @@
+{ mkXfceDerivation
+, ffmpegthumbnailer
+, gdk-pixbuf
+, glib
+, freetype
+, libgsf
+, poppler
+, libjpeg
+, gst_all_1
+}:
+
+# TODO: add libopenraw
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "tumbler";
+  version = "0.2.7";
+
+  sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry";
+
+  buildInputs = [
+    ffmpegthumbnailer
+    freetype
+    gdk-pixbuf
+    glib
+    gst_all_1.gst-plugins-base
+    libgsf
+    poppler # technically the glib binding
+  ];
+
+  # WrapGAppsHook won't touch this binary automatically, so we wrap manually.
+  postFixup = ''
+    wrapProgram $out/lib/tumbler-1/tumblerd "''${gappsWrapperArgs[@]}"
+  '';
+
+  meta = {
+    description = "A D-Bus thumbnailer service";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
new file mode 100644
index 000000000000..cbb444c6c764
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
@@ -0,0 +1,16 @@
+{ mkXfceDerivation, exo, garcon, gtk3, libxfce4util, libxfce4ui, xfconf }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-appfinder";
+  version = "4.14.0";
+
+  sha256 = "04h7jxfm3wkxnxfy8149dckay7i160vvk4p9lnq6xny22r4x20h8";
+
+  nativeBuildInputs = [ exo ];
+  buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];
+
+  meta = {
+    description = "Appfinder for the Xfce4 Desktop Environment";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
new file mode 100644
index 000000000000..38fe82ffb011
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
@@ -0,0 +1,32 @@
+{ mkXfceDerivation, autoreconfHook, autoconf, automake
+, glib, gtk-doc, intltool, libtool }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-dev-tools";
+  version = "4.14.0";
+
+  sha256 = "10hcj88784faqrk08xb538355cla26vdk9ckx158hqdqv38sb42f";
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  propagatedBuildInputs = [
+    autoconf
+    automake
+    glib
+    gtk-doc
+    intltool
+    libtool
+  ];
+
+  preAutoreconf = ''
+    substitute configure.ac.in configure.ac \
+      --subst-var-by REVISION UNKNOWN
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    description = "Autoconf macros and scripts to augment app build systems";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh
new file mode 100644
index 000000000000..600bf47fd872
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-dev-tools/setup-hook.sh
@@ -0,0 +1,12 @@
+xdtEnvHook() {
+    addToSearchPath ACLOCAL_PATH $1/share/xfce4/dev-tools/m4macros
+}
+
+envHooks+=(xdtEnvHook)
+
+xdtAutogenPhase() {
+    mkdir -p m4
+    NOCONFIGURE=1 xdt-autogen
+}
+
+preConfigurePhases+=(xdtAutogenPhase)
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
new file mode 100644
index 000000000000..f4d86247c6cd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -0,0 +1,29 @@
+{ mkXfceDerivation, tzdata, exo, garcon, gtk2, gtk3, glib, gettext, glib-networking, libxfce4ui, libxfce4util, libwnck3, xfconf, gobject-introspection }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-panel";
+  version = "4.14.0";
+
+  sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15";
+
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
+
+  patches = [ ./xfce4-panel-datadir.patch ];
+  patchFlags = [ "-p1" ];
+
+  postPatch = ''
+    for f in $(find . -name \*.sh); do
+      substituteInPlace $f --replace gettext ${gettext}/bin/gettext
+    done
+    substituteInPlace plugins/clock/clock.c \
+       --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+  '';
+
+  configureFlags = [ "--enable-gtk3" ];
+
+  meta =  {
+    description = "Xfce's panel";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch
new file mode 100644
index 000000000000..ed9df9ef36f3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-panel/xfce4-panel-datadir.patch
@@ -0,0 +1,24 @@
+diff --git a/panel/panel-module-factory.c b/panel/panel-module-factory.c
+index 529fe85..8c792b7 100644
+--- a/panel/panel-module-factory.c
++++ b/panel/panel-module-factory.c
+@@ -39,6 +39,7 @@
+ #include <panel/panel-module.h>
+ #include <panel/panel-module-factory.h>
+ 
++#define DATADIR "/run/current-system/sw/share/xfce4"
+ #define PANEL_PLUGINS_DATA_DIR     (DATADIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
+ #define PANEL_PLUGINS_DATA_DIR_OLD (DATADIR G_DIR_SEPARATOR_S "panel-plugins")
+ 
+diff --git a/panel/panel-module.c b/panel/panel-module.c
+index ba39320..519440b 100644
+--- a/panel/panel-module.c
++++ b/panel/panel-module.c
+@@ -35,6 +35,7 @@
+ #include <panel/panel-plugin-external-wrapper.h>
+ #include <panel/panel-plugin-external-46.h>
+ 
++#define LIBDIR "/run/current-system/sw/lib/xfce4"
+ #define PANEL_PLUGINS_LIB_DIR (LIBDIR G_DIR_SEPARATOR_S "panel" G_DIR_SEPARATOR_S "plugins")
+ #define PANEL_PLUGINS_LIB_DIR_OLD (LIBDIR G_DIR_SEPARATOR_S "panel-plugins")
+ 
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
new file mode 100644
index 000000000000..fb3f05b36646
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -0,0 +1,23 @@
+{ mkXfceDerivation, automakeAddFlags, exo, gtk3, libnotify
+, libxfce4ui, libxfce4util, upower, xfconf }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-power-manager";
+  version = "1.6.5";
+
+  sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5";
+
+  nativeBuildInputs = [ automakeAddFlags exo ];
+  buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
+
+  postPatch = ''
+    substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0
+    automakeAddFlags src/Makefile.am xfce4_power_manager_CFLAGS GIO_CFLAGS
+    automakeAddFlags settings/Makefile.am xfce4_power_manager_settings_CFLAGS GIO_CFLAGS
+  '';
+
+  meta = {
+    description = "A power manager for the Xfce Desktop Environment";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix
new file mode 100644
index 000000000000..0ab362aa21d0
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-session/default.nix
@@ -0,0 +1,22 @@
+{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck3, xorg, xfce4-session }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-session";
+  version = "4.14.0";
+
+  sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104";
+
+  buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
+
+  configureFlags = [ "--with-xsession-prefix=${placeholder "out"}" ];
+
+  # See https://github.com/NixOS/nixpkgs/issues/36468
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";
+
+  meta =  {
+    description = "Session manager for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
new file mode 100644
index 000000000000..74ab96ed1bcd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -0,0 +1,40 @@
+{ mkXfceDerivation, automakeAddFlags, exo, garcon, gtk3, glib
+, libnotify, libxfce4ui, libxfce4util, libxklavier
+, upower, xfconf, xf86inputlibinput }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfce4-settings";
+  version = "4.14.0";
+
+  sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn";
+
+  postPatch = ''
+    for f in $(find . -name \*.c); do
+      substituteInPlace $f --replace \"libinput-properties.h\" '<xorg/libinput-properties.h>'
+    done
+  '';
+
+  buildInputs = [
+    exo
+    garcon
+    glib
+    gtk3
+    libnotify
+    libxfce4ui
+    libxfce4util
+    libxklavier
+    upower
+    xf86inputlibinput
+    xfconf
+  ];
+
+  configureFlags = [
+    "--enable-pluggable-dialogs"
+    "--enable-sound-settings"
+  ];
+
+  meta = {
+    description = "Settings manager for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
new file mode 100644
index 000000000000..a0923f0fda1b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, libxfce4util }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfconf";
+  version = "4.14.1";
+
+  sha256 = "1mbqc1463xgn7gafbh2fyshshdxin33iwk96y4nw2gl48nhx4sgs";
+
+  buildInputs = [ libxfce4util ];
+
+  meta = {
+    description = "Simple client-server configuration storage and query system for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix
new file mode 100644
index 000000000000..afcd0d19dc33
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfdesktop/default.nix
@@ -0,0 +1,25 @@
+{ mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck3, xfconf, libnotify, garcon, thunar }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfdesktop";
+  version = "4.14.1";
+
+  sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g";
+
+  buildInputs = [
+    exo
+    gtk3
+    libxfce4ui
+    libxfce4util
+    libwnck3
+    xfconf
+    libnotify
+    garcon
+    thunar
+  ];
+
+  meta = {
+    description = "Xfce's desktop manager";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
new file mode 100644
index 000000000000..2dff3302617c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -0,0 +1,30 @@
+{ mkXfceDerivation, exo, librsvg, dbus-glib, epoxy, gtk3, libXdamage
+, libstartup_notification, libxfce4ui, libxfce4util, libwnck3
+, libXpresent, xfconf }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "xfwm4";
+  version = "4.14.0";
+
+  sha256 = "1z5aqij2d8n9wnha88b0qzkvss54jvqs8w1w5m3mzjl4c9mn9n8m";
+
+  nativeBuildInputs = [ exo librsvg ];
+
+  buildInputs = [
+    dbus-glib
+    epoxy
+    gtk3
+    libXdamage
+    libstartup_notification
+    libxfce4ui
+    libxfce4util
+    libwnck3
+    libXpresent
+    xfconf
+  ];
+
+  meta = {
+    description = "Window manager for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/default.nix b/nixpkgs/pkgs/desktops/xfce/default.nix
new file mode 100644
index 000000000000..7442ff478f59
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/default.nix
@@ -0,0 +1,223 @@
+{ config, lib, pkgs }:
+
+lib.makeScope pkgs.newScope (self: with self; {
+  #### NixOS support
+
+  mkXfceDerivation = callPackage ./mkXfceDerivation.nix { };
+
+  automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh;
+
+  # Samba is a rather heavy dependency
+  gvfs = pkgs.gvfs.override { samba = null; };
+
+  #### CORE
+
+  exo = callPackage ./core/exo { };
+
+  garcon = callPackage ./core/garcon { };
+
+  libxfce4ui = callPackage ./core/libxfce4ui { };
+
+  libxfce4util = callPackage ./core/libxfce4util { };
+
+  thunar = callPackage ./core/thunar {
+    thunarPlugins = [];
+  };
+
+  thunar-volman = callPackage ./core/thunar-volman { };
+
+  thunar-archive-plugin = callPackage ./thunar-plugins/archive { };
+
+  thunar-dropbox-plugin = callPackage ./thunar-plugins/dropbox { };
+
+  tumbler = callPackage ./core/tumbler { };
+
+  xfce4-panel = callPackage ./core/xfce4-panel { };
+
+  xfce4-session = callPackage ./core/xfce4-session { };
+
+  xfce4-settings = callPackage ./core/xfce4-settings { };
+
+  xfce4-power-manager = callPackage ./core/xfce4-power-manager { };
+
+  xfconf = callPackage ./core/xfconf { };
+
+  xfdesktop = callPackage ./core/xfdesktop { };
+
+  xfwm4 = callPackage ./core/xfwm4 { };
+
+  xfce4-appfinder = callPackage ./core/xfce4-appfinder { };
+
+  xfce4-dev-tools = callPackage ./core/xfce4-dev-tools {
+    mkXfceDerivation = mkXfceDerivation.override {
+      xfce4-dev-tools = null;
+    };
+  };
+
+  #### APPLICATIONS
+
+  catfish = callPackage ./applications/catfish { };
+
+  gigolo = callPackage ./applications/gigolo { };
+
+  mousepad = callPackage ./applications/mousepad { };
+
+  orage = callPackage ./applications/orage { };
+
+  parole = callPackage ./applications/parole { };
+
+  ristretto = callPackage ./applications/ristretto { };
+
+  xfce4-taskmanager = callPackage ./applications/xfce4-taskmanager { };
+
+  xfce4-dict = callPackage ./applications/xfce4-dict { };
+
+  xfce4-terminal = callPackage ./applications/xfce4-terminal { };
+
+  xfce4-screenshooter = callPackage ./applications/xfce4-screenshooter {
+    inherit (pkgs.gnome3) libsoup;
+  };
+
+  xfdashbooard = callPackage ./applications/xfdashboard {};
+
+  # TODO: this repo is inactive for many years. Remove?
+  xfce4-volumed = callPackage ./applications/xfce4-volumed { };
+
+  xfce4-volumed-pulse = callPackage ./applications/xfce4-volumed-pulse { };
+
+  xfce4-notifyd = callPackage ./applications/xfce4-notifyd { };
+
+  xfburn = callPackage ./applications/xfburn { };
+
+  #### ART
+
+  xfce4-icon-theme = callPackage ./art/xfce4-icon-theme.nix { };
+
+  xfwm4-themes = callPackage ./art/xfwm4-themes.nix { };
+
+  #### PANEL PLUGINS
+
+  xfce4-vala-panel-appmenu-plugin = callPackage ./panel-plugins/xfce4-vala-panel-appmenu-plugin { };
+
+  xfce4-battery-plugin = callPackage ./panel-plugins/xfce4-battery-plugin { };
+
+  xfce4-clipman-plugin = callPackage ./panel-plugins/xfce4-clipman-plugin { };
+
+  xfce4-cpufreq-plugin = callPackage ./panel-plugins/xfce4-cpufreq-plugin { };
+
+  xfce4-cpugraph-plugin = callPackage ./panel-plugins/xfce4-cpugraph-plugin.nix { };
+
+  xfce4-datetime-plugin = callPackage ./panel-plugins/xfce4-datetime-plugin { };
+
+  xfce4-dict-plugin = callPackage ./panel-plugins/xfce4-dict-plugin.nix { };
+
+  xfce4-dockbarx-plugin = callPackage ./panel-plugins/xfce4-dockbarx-plugin.nix { };
+
+  xfce4-embed-plugin = callPackage ./panel-plugins/xfce4-embed-plugin.nix { };
+
+  xfce4-eyes-plugin = callPackage ./panel-plugins/xfce4-eyes-plugin.nix { };
+
+  xfce4-fsguard-plugin = callPackage ./panel-plugins/xfce4-fsguard-plugin.nix { };
+
+  xfce4-genmon-plugin = callPackage ./panel-plugins/xfce4-genmon-plugin.nix { };
+
+  xfce4-hardware-monitor-plugin = callPackage ./panel-plugins/xfce4-hardware-monitor-plugin.nix { };
+
+  xfce4-namebar-plugin = callPackage ./panel-plugins/xfce4-namebar-plugin.nix { };
+
+  xfce4-netload-plugin = callPackage ./panel-plugins/xfce4-netload-plugin { };
+
+  xfce4-notes-plugin = callPackage ./panel-plugins/xfce4-notes-plugin.nix { };
+
+  xfce4-mailwatch-plugin = callPackage ./panel-plugins/xfce4-mailwatch-plugin.nix { };
+
+  xfce4-mpc-plugin = callPackage ./panel-plugins/xfce4-mpc-plugin.nix { };
+
+  xfce4-sensors-plugin = callPackage ./panel-plugins/xfce4-sensors-plugin.nix { };
+
+  xfce4-systemload-plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
+
+  xfce4-timer-plugin = callPackage ./panel-plugins/xfce4-timer-plugin.nix { };
+
+  xfce4-verve-plugin = callPackage ./panel-plugins/xfce4-verve-plugin { };
+
+  xfce4-xkb-plugin = callPackage ./panel-plugins/xfce4-xkb-plugin { };
+
+  xfce4-weather-plugin = callPackage ./panel-plugins/xfce4-weather-plugin.nix { };
+
+  xfce4-whiskermenu-plugin = callPackage ./panel-plugins/xfce4-whiskermenu-plugin { };
+
+  xfce4-windowck-plugin = callPackage ./panel-plugins/xfce4-windowck-plugin.nix { };
+
+  xfce4-pulseaudio-plugin = callPackage ./panel-plugins/xfce4-pulseaudio-plugin { };
+
+} // lib.optionalAttrs (config.allowAliases or true) {
+  #### ALIASES - added 2018-01
+
+  terminal = xfce4-terminal;
+  thunar-build = thunar-bare;
+  thunarx-2-dev = thunar-build;
+  thunar_volman = thunar-volman;
+  xfce4panel = xfce4-panel;
+  xfce4session = xfce4-session;
+  xfce4settings = xfce4-settings;
+  xfce4_power_manager = xfce4-power-manager;
+  xfce4_appfinder = xfce4-appfinder;
+  xfce4_dev_tools = xfce4-dev-tools;
+  xfce4mixer = xfce4-mixer;
+  xfce4mixer_pulse = xfce4-mixer-pulse;
+  xfce4notifyd = xfce4-notifyd;
+  xfce4taskmanager = xfce4-taskmanager;
+  xfce4terminal = xfce4-terminal;
+  xfce4volumed = xfce4-volumed;
+  xfce4volumed_pulse = xfce4-volumed-pulse;
+  xfce4icontheme = xfce4-icon-theme;
+  xfwm4themes = xfwm4-themes;
+
+  xfce4_battery_plugin = xfce4-battery-plugin;
+  xfce4_clipman_plugin = xfce4-clipman-plugin;
+  xfce4_cpufreq_plugin = xfce4-cpufreq-plugin;
+  xfce4_cpugraph_plugin = xfce4-cpugraph-plugin;
+  xfce4_datetime_plugin = xfce4-datetime-plugin;
+  xfce4_dict_plugin = xfce4-dict-plugin;
+  xfce4_dockbarx_plugin = xfce4-dockbarx-plugin;
+  xfce4_embed_plugin = xfce4-embed-plugin;
+  xfce4_eyes_plugin = xfce4-eyes-plugin;
+  xfce4_fsguard_plugin = xfce4-fsguard-plugin;
+  xfce4_genmon_plugin = xfce4-genmon-plugin;
+  xfce4_hardware_monitor_plugin = xfce4-hardware-monitor-plugin;
+  xfce4_namebar_plugin = xfce4-namebar-plugin;
+  xfce4_netload_plugin = xfce4-netload-plugin;
+  xfce4_notes_plugin = xfce4-notes-plugin;
+  xfce4_mailwatch_plugin = xfce4-mailwatch-plugin;
+  xfce4_mpc_plugin = xfce4-mpc-plugin;
+  xfce4_sensors_plugin = xfce4-sensors-plugin;
+  xfce4_systemload_plugin = xfce4-systemload-plugin;
+  xfce4_timer_plugin = xfce4-timer-plugin;
+  xfce4_verve_plugin = xfce4-verve-plugin;
+  xfce4_xkb_plugin = xfce4-xkb-plugin;
+  xfce4_weather_plugin = xfce4-weather-plugin;
+  xfce4_whiskermenu_plugin = xfce4-whiskermenu-plugin;
+  xfce4_windowck_plugin = xfce4-windowck-plugin;
+  xfce4_pulseaudio_plugin = xfce4-pulseaudio-plugin;
+
+  xfce4-mixer = throw "deprecated 2019-08-18: obsoleted by xfce4-pulseaudio-plugin"; # added 2019-08-18
+  gtk-xfce-engine = throw "deprecated 2019-09-17: Xfce 4.14 deprecated gtk-xfce-engine"; # added 2019-09-17
+
+  # added 2019-11-04
+  libxfce4ui_gtk3 = libxfce4ui;
+  xfce4panel_gtk3 = xfce4-panel;
+  xfce4_power_manager_gtk3 = xfce4-power-manager;
+  gtk = pkgs.gtk2;
+  libxfcegui4 = throw "libxfcegui4 is the deprecated Xfce GUI library. It has been superseded by the libxfce4ui library";
+  xinitrc = xfce4-session.xinitrc;
+  inherit (pkgs.gnome2) libglade;
+  inherit (pkgs.gnome3) vte gtksourceview;
+  xfce4-mixer-pulse = xfce4-mixer;
+  thunar-bare = thunar.override {
+    thunarPlugins = [];
+  };
+
+  # added 2019-11-30
+  inherit (pkgs) dconf;
+})
diff --git a/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix b/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix
new file mode 100644
index 000000000000..b7dc83225696
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/mkXfceDerivation.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, wrapGAppsHook }:
+
+{ category, pname, version, rev ? "${pname}-${version}", sha256, ... } @ args:
+
+let
+  inherit (builtins) filter getAttr head isList;
+  inherit (stdenv.lib) attrNames concatLists recursiveUpdate zipAttrsWithNames;
+
+  filterAttrNames = f: attrs:
+    filter (n: f (getAttr n attrs)) (attrNames attrs);
+
+  concatAttrLists = attrsets:
+    zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets;
+
+  template = {
+    name = "${pname}-${version}";
+
+    nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ];
+    buildInputs = [ hicolor-icon-theme ];
+    configureFlags = [ "--enable-maintainer-mode" ];
+
+    src = fetchgit {
+      url = "git://git.xfce.org/${category}/${pname}";
+      inherit rev sha256;
+    };
+
+    enableParallelBuilding = true;
+    outputs = [ "out" "dev" ];
+
+    meta = with stdenv.lib; {
+      homepage = "https://git.xfce.org/${category}/${pname}/about";
+      license = licenses.gpl2; # some libraries are under LGPLv2+
+      platforms = platforms.linux;
+    };
+  };
+
+  publicArgs = removeAttrs args [ "category" "pname" "sha256" ];
+in
+
+stdenv.mkDerivation (recursiveUpdate template publicArgs // concatAttrLists [ template args ])
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
new file mode 100644
index 000000000000..3966e256b160
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-battery-plugin";
+  version = "1.1.2";
+  rev = version;
+  sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0";
+
+  buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "Battery plugin for Xfce panel";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
new file mode 100644
index 000000000000..bd1a3b5e5e35
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, gtk3, libXtst, libxfce4ui, libxfce4util, xfce4-panel, xfconf, exo }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-clipman-plugin";
+  version = "1.4.3";
+  rev = version;
+  sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq";
+
+  buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "Clipboard manager for Xfce panel";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
new file mode 100644
index 000000000000..3798edbf89dc
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
@@ -0,0 +1,14 @@
+{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation {
+  category = "panel-plugins";
+  pname = "xfce4-cpufreq-plugin";
+  version = "1.2.1";
+  sha256 = "1p7c4g3yfc19ksdckxpzq1q35jvplh5g55299cvv0afhdb5l8zhv";
+
+  buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "CPU Freq load plugin for Xfce panel";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
new file mode 100644
index 000000000000..ef7f7e580206
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, hicolor-icon-theme }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-cpugraph-plugin";
+  ver_maj = "1.0";
+  ver_min = "5";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "CPU graph show for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
new file mode 100644
index 000000000000..3cfb010b12da
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
@@ -0,0 +1,34 @@
+{ mkXfceDerivation
+, stdenv
+, intltool
+, libxfce4ui
+, xfce4-panel
+, gtk3
+, gettext
+}:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-datetime-plugin";
+  version = "0.8.0";
+
+  rev = "datetime-${version}";
+
+  sha256 = "12drh7y70d70r93lpv43fkj5cbyl0vciz4a41nxrknrfbhxrvyah";
+
+  nativeBuildInputs = [
+    gettext
+    intltool
+  ];
+
+  buildInputs = [
+    gtk3
+    libxfce4ui
+    xfce4-panel
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Shows the date and time in the panel, and a calendar appears when you left-click on it";
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix
new file mode 100644
index 000000000000..0b31bac8d54b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-dict-plugin";
+  ver_maj = "0.3";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.gz";
+    sha256 = "1x0imfnsdfq7fbhka8bc0yjjspkcljc1jafhrwzb08qi9bk2wbar";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Dictionary plugin for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+    broken = true; # see http://goodies.xfce.org/projects/panel-plugins/xfce4-dict-plugin
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
new file mode 100644
index 000000000000..b33ba7770be3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
@@ -0,0 +1,40 @@
+{ stdenv, pkgconfig, fetchFromGitHub, python2, bash, vala
+, dockbarx, gtk2, xfce, pythonPackages, wafHook }:
+
+stdenv.mkDerivation rec {
+  ver = "0.5";
+  rev = "a2dcb66";
+  name = "xfce4-dockbarx-plugin-${ver}-${rev}";
+
+  src = fetchFromGitHub {
+    owner = "TiZ-EX1";
+    repo = "xfce4-dockbarx-plugin";
+    rev = rev;
+    sha256 = "1f75iwlshnif60x0qqdqw5ffng2m4f4zp0ijkrbjz83wm73nsxfx";
+  };
+
+  pythonPath = [ dockbarx ];
+
+  nativeBuildInputs = [ pkgconfig wafHook ];
+  buildInputs = [ python2 vala gtk2 pythonPackages.wrapPython ]
+    ++ (with xfce; [ libxfce4util xfce4-panel xfconf xfce4-dev-tools ])
+    ++ pythonPath;
+
+  postPatch = ''
+    substituteInPlace wscript           --replace /usr/share/            "\''${PREFIX}/share/"
+    substituteInPlace src/dockbarx.vala --replace /usr/share/            $out/share/
+    substituteInPlace src/dockbarx.vala --replace '/usr/bin/env python2' ${bash}/bin/bash
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/share/xfce4/panel/plugins" "$out $pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/TiZ-EX1/xfce4-dockbarx-plugin;
+    description = "A plugins to embed DockbarX into xfce4-panel";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
new file mode 100644
index 000000000000..e6d1f6da26b5
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2 }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-embed-plugin";
+  ver_maj = "1.6";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Embed arbitrary app windows on Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
new file mode 100644
index 000000000000..03e5a2229672
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-eyes-plugin";
+  ver_maj = "4.4";
+  ver_min = "4";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Eyes following you!";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
new file mode 100644
index 000000000000..ee663aa71ca8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-fsguard-plugin";
+  ver_maj = "1.0";
+  ver_min = "2";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Filesystem monitor";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
new file mode 100644
index 000000000000..193d27af98a3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-genmon-plugin";
+  ver_maj = "3.4";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Cyclically spawns a command and captures its output";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
new file mode 100644
index 000000000000..2782decf6c4c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, intltool, autoreconfHook, gnome2, gtkmm2,
+  libgtop, libxfce4ui, libxfce4util, xfce4-panel, lm_sensors
+}:
+
+stdenv.mkDerivation rec {
+  pname  = "xfce4-hardware-monitor-plugin";
+  version = "1.6.0";
+
+  src = fetchurl {
+    url = "https://git.xfce.org/panel-plugins/${pname}/snapshot/${pname}-${version}.tar.bz2";
+    sha256 = "0xg5har11fk1wmdymydxlbk1z8aa39j8k0p4gzw2iqslv3n0zf7b";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    gtkmm2
+    gnome2.libgnomecanvas
+    gnome2.libgnomecanvasmm
+    libgtop
+    libxfce4ui
+    libxfce4util
+    xfce4-panel
+    lm_sensors
+   ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${pname}";
+    description = "Hardware monitor plugin for the XFCE4 panel";
+    license = stdenv.lib.licenses.gpl3;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
new file mode 100644
index 000000000000..e9d2eb590be9
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
+ xfconf, gtk2, exo, gnutls, libgcrypt }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-mailwatch-plugin";
+  ver_maj = "1.2";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
+    xfconf gtk2 exo gnutls libgcrypt ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Mailwatch plugin for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
new file mode 100644
index 000000000000..b909540144ae
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
+ xfconf, gtk2, exo }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-mpc-plugin";
+  ver_maj = "0.4";
+  ver_min = "5";
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
+    xfconf gtk2 exo ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "MPD plugin for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix
new file mode 100644
index 000000000000..8c6c91e25194
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix
@@ -0,0 +1,31 @@
+{ stdenv, pkgconfig, fetchFromGitHub, python2, vala_0_40
+, gtk2, libwnck, libxfce4util, xfce4-panel, wafHook }:
+
+stdenv.mkDerivation rec {
+  ver = "0.3.1";
+  rev = "07a23b3";
+  name = "xfce4-namebar-plugin-${ver}";
+
+  src = fetchFromGitHub {
+    owner = "TiZ-EX1";
+    repo = "xfce4-namebar-plugin";
+    rev = rev;
+    sha256 = "1sl4qmjywfvv53ch7hyfysjfd91zl38y7gdw2y3k69vkzd3h18ad";
+  };
+
+  nativeBuildInputs = [ pkgconfig wafHook ];
+  buildInputs = [ python2 vala_0_40 gtk2 libwnck libxfce4util xfce4-panel ];
+
+  postPatch = ''
+    substituteInPlace src/preferences.vala --replace 'Environment.get_system_data_dirs()' "{ \"$out/share\" }"
+    substituteInPlace src/namebar.vala     --replace 'Environment.get_system_data_dirs()' "{ \"$out/share\" }"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/TiZ-EX1/xfce4-namebar-plugin;
+    description = "A plugins which integrates titlebar and window controls into the xfce4-panel";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
new file mode 100644
index 000000000000..d774649b5369
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
@@ -0,0 +1,15 @@
+{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-netload-plugin";
+  version = "1.3.1";
+  rev = "version-${version}";
+  sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h";
+
+  buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "Battery plugin for Xfce panel";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
new file mode 100644
index 000000000000..2876c1b1f7d8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-notes-plugin";
+  ver_maj = "1.7";
+  ver_min = "7";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Sticky notes plugin for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
new file mode 100644
index 000000000000..83778aa8fffd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
@@ -0,0 +1,23 @@
+{ mkXfceDerivation, automakeAddFlags, dbus-glib, dbus, gtk3, libpulseaudio
+, libnotify, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation {
+  category = "panel-plugins";
+  pname = "xfce4-pulseaudio-plugin";
+  version = "0.4.1";
+  sha256 = "1c8krpg3l6ki00ldd9hifc4bddysdm0w3x5w43fkr31j0zrscvfp";
+
+  nativeBuildInputs = [ automakeAddFlags ];
+
+  NIX_CFLAGS_COMPILE = "-I${dbus-glib.dev}/include/dbus-1.0 -I${dbus.dev}/include/dbus-1.0";
+
+  postPatch = ''
+    substituteInPlace configure.ac.in --replace gio-2.0 gio-unix-2.0
+  '';
+
+  buildInputs = [ gtk3 libnotify libpulseaudio libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  meta = {
+    description = "Adjust the audio volume of the PulseAudio sound system";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
new file mode 100644
index 000000000000..2e7233e6cdb0
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui,
+  libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu
+}:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${ver_maj}.${ver_min}";
+  pname  = "xfce4-sensors-plugin";
+  ver_maj = "1.2";
+  ver_min = "6";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${pname}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    gtk2
+    libxfce4ui
+    libxfce4util
+    xfce4-panel
+    libnotify
+    lm_sensors
+    hddtemp
+    netcat-gnu
+   ];
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
+    "--with-pathnetcat=${netcat-gnu}/bin/netcat"
+  ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${pname}";
+    description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
new file mode 100644
index 000000000000..5575962ab77e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-systemload-plugin";
+  ver_maj = "1.1";
+  ver_min = "2";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0z4as6sxdz93d4jpgv0665dg4sykfvc5068mc689phlfl2rvcsdl";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel gtk2 ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "System load plugin for Xfce panel";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
new file mode 100644
index 000000000000..4eddfe8df574
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel
+, libxfce4ui, xfconf, gtk2, hicolor-icon-theme }:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-timer-plugin";
+  ver_maj = "1.6";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "0z46gyw3ihcd1jf0m5z1dsc790xv1cpi8mk1dagj3i4v14gx5mrr";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf
+    gtk2 hicolor-icon-theme ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "A simple XFCE panel plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period";
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+    maintainers = [ ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
new file mode 100644
index 000000000000..39393dd39e9f
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/appmenu-gtk-module.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, vala, glib, gtk2, gtk3 }:
+stdenv.mkDerivation rec {
+  pname = "vala-panel-appmenu-xfce";
+  version = "0.6.94";
+
+  src = "${fetchFromGitHub {
+    owner = "rilian-la-te";
+    repo = "vala-panel-appmenu";
+    rev = version;
+    fetchSubmodules = true;
+
+    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
+  }}/subprojects/appmenu-gtk-module";
+
+  nativeBuildInputs = [ cmake vala ];
+  buildInputs = [ glib gtk2 gtk3 ];
+
+  configurePhase = ''
+    cmake . -DGTK3_INCLUDE_GDK=
+  '';
+  installPhase = ''
+    make DESTDIR=output install
+    cp -r output/var/empty/* "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Port of the Unity GTK Module";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
new file mode 100644
index 000000000000..43e943f194ac
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, substituteAll, callPackage, pkgconfig, cmake, vala, libxml2,
+  glib, pcre, gtk2, gtk3, xorg, libxkbcommon, epoxy, at-spi2-core, dbus-glib, bamf,
+  xfce, libwnck3, libdbusmenu, gobject-introspection }:
+
+stdenv.mkDerivation rec {
+  pname = "xfce4-vala-panel-appmenu-plugin";
+  version = "0.6.94";
+
+  src = fetchFromGitHub {
+    owner = "rilian-la-te";
+    repo = "vala-panel-appmenu";
+    rev = version;
+    fetchSubmodules = true;
+
+    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake vala libxml2.bin ];
+  buildInputs = [ (callPackage ./appmenu-gtk-module.nix {})
+                  glib pcre gtk2 gtk3 xorg.libpthreadstubs xorg.libXdmcp libxkbcommon epoxy
+                  at-spi2-core dbus-glib bamf xfce.xfce4panel_gtk3 xfce.libxfce4util xfce.xfconf
+                  libwnck3 libdbusmenu gobject-introspection ];
+
+  patches = [
+    (substituteAll {
+      src = ./fix-bamf-dependency.patch;
+      bamf = bamf;
+    })
+  ];
+
+  cmakeFlags = [
+      "-DENABLE_XFCE=ON"
+      "-DENABLE_BUDGIE=OFF"
+      "-DENABLE_VALAPANEL=OFF"
+      "-DENABLE_MATE=OFF"
+      "-DENABLE_JAYATANA=OFF"
+      "-DENABLE_APPMENU_GTK_MODULE=OFF"
+  ];
+
+  preConfigure = ''
+    mv cmake/FallbackVersion.cmake.in cmake/FallbackVersion.cmake
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Global Menu applet for XFCE4";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ jD91mZM2 ];
+    broken = true;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
new file mode 100644
index 000000000000..1ed86a67f727
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/fix-bamf-dependency.patch
@@ -0,0 +1,12 @@
++++ source/cmake/FindBAMF.cmake	2018-05-11 17:03:44.385917811 +0200
+@@ -80,9 +80,7 @@
+ 
+ find_program(BAMF_DAEMON_EXECUTABLE
+ 	bamfdaemon
+-	HINTS ${CMAKE_INSTALL_FULL_LIBDIR}
+-		  ${CMAKE_INSTALL_FULL_LIBEXECDIR}
+-		  ${BAMF_LIBDIR}
++	HINTS "@bamf@/libexec/bamf/"
+ 	PATH_SUFFIXES bamf
+ )
+ 
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
new file mode 100644
index 000000000000..288aaddfb982
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
@@ -0,0 +1,18 @@
+{ lib, mkXfceDerivation, gtk3, libxfce4ui, pcre, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-verve-plugin";
+  version = "2.0.0";
+  rev = version;
+  sha256 = "09vpa6m0ah7pgmra094c16vb79xrcwva808g6zpawwrhcwz85lcz";
+
+  buildInputs = [ gtk3 libxfce4ui pcre libxfce4util xfce4-panel ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = {
+    description = "A command-line plugin";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
new file mode 100644
index 000000000000..5ab311ef16f7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2, libxml2, libsoup, upower,
+libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec {
+  name = "${p_name}-${ver_maj}.${ver_min}";
+  p_name  = "xfce4-weather-plugin";
+  ver_maj = "0.8";
+  ver_min = "10";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1f7ac2zr5s5w6krdpgsq252wxhhmcblia3j783132ilh8k246vgf";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  buildInputs = [ gtk2 libxml2 libsoup upower libxfce4ui libxfce4util
+   xfce4-panel hicolor-icon-theme ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Weather plugin for the Xfce desktop environment";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
new file mode 100644
index 000000000000..ef47d37e5efd
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -0,0 +1,22 @@
+{ mkXfceDerivation, gtk3, glib, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-whiskermenu-plugin";
+  version = "2.3.3";
+  rev = "v${version}";
+  sha256 = "0agh0a5srsy6vi6r50ak9rb42r7vcnfv6nfvg4qbqi77yc44yqdb";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ exo garcon gtk3 glib libxfce4ui libxfce4util xfce4-panel xfconf ];
+
+  postInstall = ''
+    substituteInPlace $out/bin/xfce4-popup-whiskermenu \
+      --replace $out/bin/xfce4-panel ${xfce4-panel.out}/bin/xfce4-panel
+  '';
+
+  meta = {
+    description = "Alternate application launcher for Xfce";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
new file mode 100644
index 000000000000..8798851579d8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, pkgconfig, intltool, python3, imagemagick, libwnck, gtk2
+, exo, libxfce4ui, libxfce4util, xfce4-panel, xfconf, xfce4-dev-tools }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-windowck-plugin";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "cedl38";
+    repo = "xfce4-windowck-plugin";
+    rev = "v${version}";
+    sha256 = "0c6a1ibh39dpq9x0dha5lsg0vzmgaf051fgwz0nlky0s94nwzvgv";
+  };
+  name = "${p_name}-${version}";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ intltool python3 imagemagick libwnck gtk2
+    exo libxfce4ui libxfce4util xfce4-panel xfconf xfce4-dev-tools ];
+
+  preConfigure = ''
+    ./autogen.sh
+    patchShebangs .
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "http://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    description = "Set of two plugins which allows you to put the maximized window title and windows buttons on the panel";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.volth ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
new file mode 100644
index 000000000000..4497a7b0e36a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
@@ -0,0 +1,16 @@
+{ lib, mkXfceDerivation, gtk3, librsvg, libwnck3, libxklavier, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+
+mkXfceDerivation rec {
+  category = "panel-plugins";
+  pname = "xfce4-xkb-plugin";
+  version = "0.8.1";
+  rev = version;
+  sha256 = "1gyky4raynp2ggdnq0g96c6646fjm679fzipcsmf1q0aymr8d5ky";
+
+  buildInputs = [ garcon gtk3 librsvg libxfce4ui libxfce4util libxklavier libwnck3 xfce4-panel xfconf ];
+
+  meta = with lib; {
+    description = "Allows you to setup and use multiple keyboard layouts";
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/thunar-plugins/archive/default.nix b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
new file mode 100644
index 000000000000..e3c72d3b50e2
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, mkXfceDerivation
+, fetchFromGitHub
+, gtk3
+, thunar
+, exo
+, libxfce4util
+, intltool
+, gettext
+}:
+
+mkXfceDerivation rec {
+  category = "thunar-plugins";
+  pname  = "thunar-archive-plugin";
+  version = "0.4.0";
+
+  sha256 = "1793zicm00fail4iknliwy2b668j239ndxhc9hy6jarvdyp08h38";
+
+  nativeBuildInputs = [
+    intltool
+    gettext
+  ];
+
+  buildInputs = [
+    thunar
+    exo
+    gtk3
+    libxfce4util
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Thunar plugin providing file context menus for archives";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
new file mode 100644
index 000000000000..8674c586552c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, gtk3
+, thunar
+, cmake
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+  pname  = "thunar-dropbox";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "Jeinzi";
+    repo = "thunar-dropbox";
+    rev = version;
+    sha256 = "1fshjvh542ffa8npfxv3cassgn6jclb2ix9ir997y4k0abzp1fxb";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    thunar
+    gtk3
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Jeinzi/thunar-dropbox";
+    description = "A plugin that adds context-menu items for Dropbox to Thunar";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}