about summary refs log tree commit diff
path: root/pkgs/desktops/xfce
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/xfce')
-rw-r--r--pkgs/desktops/xfce/applications/gigolo/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/orage/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/parole/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfburn/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-dict/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-terminal/default.nix4
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed/default.nix18
-rw-r--r--pkgs/desktops/xfce/applications/xfdashboard/default.nix7
-rw-r--r--pkgs/desktops/xfce/art/xfce4-icon-theme.nix34
-rw-r--r--pkgs/desktops/xfce/art/xfwm4-themes.nix20
-rw-r--r--pkgs/desktops/xfce/core/exo/default.nix21
-rw-r--r--pkgs/desktops/xfce/core/thunar-volman/default.nix2
-rw-r--r--pkgs/desktops/xfce/core/thunar/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/tumbler/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-power-manager/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings/default.nix4
-rw-r--r--pkgs/desktops/xfce/core/xfdesktop/default.nix4
-rw-r--r--pkgs/desktops/xfce/default.nix12
-rw-r--r--pkgs/desktops/xfce/mkXfceDerivation.nix25
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix9
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix7
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix47
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix25
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix3
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix36
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix45
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix45
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix44
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix12
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix46
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix46
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix9
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix46
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix6
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix34
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix41
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix45
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix10
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix51
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix4
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix42
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix4
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/archive/default.nix3
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix7
51 files changed, 578 insertions, 301 deletions
diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix
index 32486aab981f..251866528e64 100644
--- a/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -3,9 +3,10 @@
 mkXfceDerivation {
   category = "apps";
   pname = "gigolo";
-  version = "0.5.0";
+  version = "0.5.1";
+  odd-unstable = false;
 
-  sha256 = "1lqsxb0d5i8p9vbzx8s4p3rga7va5h1q146xgmsa41j5v40wrlw6";
+  sha256 = "11a35z5apr26nl6fpmbsvvv3xf5w61sgzcb505plavrchpfbdxjn";
 
   nativeBuildInputs = [ exo ];
   buildInputs = [ gtk3 glib gvfs ];
diff --git a/pkgs/desktops/xfce/applications/orage/default.nix b/pkgs/desktops/xfce/applications/orage/default.nix
index ea025fbb33c6..08b78ec40067 100644
--- a/pkgs/desktops/xfce/applications/orage/default.nix
+++ b/pkgs/desktops/xfce/applications/orage/default.nix
@@ -8,7 +8,7 @@ let
 in
 
 mkXfceDerivation {
-  category = "apps";
+  category = "archive";
   pname = "orage";
   version = "4.12.1";
 
diff --git a/pkgs/desktops/xfce/applications/parole/default.nix b/pkgs/desktops/xfce/applications/parole/default.nix
index 20b899165f09..bfb865184487 100644
--- a/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/pkgs/desktops/xfce/applications/parole/default.nix
@@ -7,9 +7,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "parole";
-  version = "1.0.4";
+  version = "1.0.5";
 
-  sha256 = "18j4bmny37crryh4pvxcjjvj99mln6ljq2vy69awxhvrjx9ljv13";
+  sha256 = "0qgis2gnkcvg7xwp76cbi0ihqdjprvvw2d66hk7klhrafp7c0v13";
 
   postPatch = ''
     substituteInPlace src/plugins/mpris2/Makefile.am \
diff --git a/pkgs/desktops/xfce/applications/xfburn/default.nix b/pkgs/desktops/xfce/applications/xfburn/default.nix
index 08f2bd511a87..8aff25df4943 100644
--- a/pkgs/desktops/xfce/applications/xfburn/default.nix
+++ b/pkgs/desktops/xfce/applications/xfburn/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfburn";
-  version = "0.6.1";
+  version = "0.6.2";
 
-  sha256 = "0a1ly79x7j5pgr3vbsabb4i0jd5rryaigj9z8iqzr8p9miypx20v";
+  sha256 = "02axhsbbsvd31jb0xs1d2qxr614qb29pajv0sm2p1n1c2cv2fjh1";
 
   nativeBuildInputs = [ libxslt docbook_xsl ];
   buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
diff --git a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index b2682080216c..7e582abc05f7 100644
--- a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-dict";
-  version = "0.8.2";
+  version = "0.8.3";
 
-  sha256 = "1zbb0k0984ny7wy4gbk6ymkh87rbfakpim54yq4r3h5ymslx7iv7";
+  sha256 = "0p7k2ffknr23hh3j17dhh5q8adn736p2piwx0sg8f5dvvhhc5whz";
 
   patches = [ ./configure-gio.patch ];
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
index a991e8c81807..40d9c188fa3d 100644
--- a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-notifyd";
-  version = "0.4.4";
+  version = "0.6.0";
 
-  sha256 = "1lmm9h3ych8dz9jpjkxg91f9ln14xs527nxjxsryks00kmqk4kai";
+  sha256 = "03lw7zil6pwvx537ibqrynxjz7d6iq6in7vdskrnnn16kfg6hjg2";
 
   buildInputs = [ exo gtk3 glib libnotify libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index 012486baac9b..8c0fa3e3edb6 100644
--- a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -3,9 +3,10 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-screenshooter";
-  version = "1.9.5";
+  version = "1.9.7";
+  odd-unstable = false;
 
-  sha256 = "1h14sywvk9l06p3z1cpb79911j8w2wqbk03ldknjkia2rfymjk06";
+  sha256 = "14vbd7iigaw57hl47rnixk873c20q5clqynzkm9zzpqc568dxixd";
 
   buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
index e3d8b4b87d94..9a923025c94d 100644
--- a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-taskmanager";
-  version = "1.2.2";
+  version = "1.2.3";
 
-  sha256 = "03js0pmhrybxa7hrp3gx4rm7j061ansv0bp2dwhnbrdpmzjysysc";
+  sha256 = "0818chns7vkvjqakgz8z790adkygcq4jlw59dv6kyzk17hxq6cxv";
 
   nativeBuildInputs = [ exo ];
   buildInputs = [ gtk3 libwnck3 libXmu ];
diff --git a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index 3b9cd268d55a..56de8d3bfb83 100644
--- a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfce4-terminal";
-  version = "0.8.8";
+  version = "0.8.9.2";
 
-  sha256 = "0sg9vwyvhh7pjp83biv7gvf42423a7ly4dc7q2gn28kp6bds2qcp";
+  sha256 = "1vlpfsrdalqmsd86aj0kvvam5skzn6xngigjziwli6q6il6lb9fj";
 
   buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix b/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
index 76e89a592b48..aec898161ffb 100644
--- a/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
@@ -1,9 +1,11 @@
 { stdenv, fetchurl, pkgconfig, makeWrapper
 , gstreamer, gtk2, gst-plugins-base, libnotify
-, keybinder, xfconf
+, keybinder, xfconf, xfce
 }:
 
 let
+  category = "apps";
+
   # 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 {
@@ -13,15 +15,13 @@ let
 in
 
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-volumed";
-  ver_maj = "0.1";
-  ver_min = "13";
+  pname  = "xfce4-volumed";
+  version = "0.1.13";
 
   src = fetchurl {
-    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs =
     [ gstreamer gst_plugins_minimal gtk2
@@ -36,6 +36,12 @@ stdenv.mkDerivation rec {
         --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
     '';
 
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
+
   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";
diff --git a/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
index a17c29f6723e..a9610125b5b5 100644
--- a/pkgs/desktops/xfce/applications/xfdashboard/default.nix
+++ b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -17,10 +17,11 @@
 mkXfceDerivation {
   category = "apps";
   pname = "xfdashboard";
-  version = "0.7.5";
-  rev = "0.7.5";
+  version = "0.7.7";
+  rev-prefix = "";
+  odd-unstable = false;
 
-  sha256 = "0d0kg90h3li41bs75z3xldljsglkz220pba39c54qznnzb8v8a2i";
+  sha256 = "0b9pl3k8wl7svwhb9knhvr86gjg2904n788l8cbczwy046ql7pyc";
 
   buildInputs = [
     clutter
diff --git a/pkgs/desktops/xfce/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
index 4f35dff42ff3..e614bb1db921 100644
--- a/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
+++ b/pkgs/desktops/xfce/art/xfce4-icon-theme.nix
@@ -1,23 +1,35 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, xfce }:
+
+let
+  category = "art";
+in
 
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-icon-theme";
-  ver_maj = "4.4";
-  ver_min = "3";
+  pname  = "xfce4-icon-theme";
+  version = "4.4.3";
 
   src = fetchurl {
-    url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+    gtk3
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://www.xfce.org/";
     description = "Icons for Xfce";
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.eelco ];
   };
 }
diff --git a/pkgs/desktops/xfce/art/xfwm4-themes.nix b/pkgs/desktops/xfce/art/xfwm4-themes.nix
index 1c40b7ec29b1..db0a1779a41b 100644
--- a/pkgs/desktops/xfce/art/xfwm4-themes.nix
+++ b/pkgs/desktops/xfce/art/xfwm4-themes.nix
@@ -1,15 +1,23 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, xfce }:
+
+let
+  category = "art";
+in
 
 stdenv.mkDerivation rec {
-  p_name  = "xfwm4-themes";
-  ver_maj = "4.10";
-  ver_min = "0";
+  pname  = "xfwm4-themes";
+  version = "4.10.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/art/${p_name}/${ver_maj}/${name}.tar.bz2";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "0xfmdykav4rf6gdxbd6fhmrfrvbdc1yjihz7r7lba0wp1vqda51j";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
   meta = with stdenv.lib; {
     homepage = "https://www.xfce.org/";
diff --git a/pkgs/desktops/xfce/core/exo/default.nix b/pkgs/desktops/xfce/core/exo/default.nix
index 59ab5823314e..ee58c76ea02b 100644
--- a/pkgs/desktops/xfce/core/exo/default.nix
+++ b/pkgs/desktops/xfce/core/exo/default.nix
@@ -1,15 +1,26 @@
-{ mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk3
+{ mkXfceDerivation, docbook_xsl, glib, libxslt, perlPackages, gtk2, gtk3
 , libxfce4ui, libxfce4util }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "exo";
-  version = "0.12.8";
+  version = "0.12.11";
 
-  sha256 = "013am7q4pwfncf4hk2a3hv7yx2vxgzb5xm8qsi9mxkj29xdhrvs5";
+  sha256 = "1db7w6jk3i501x4qw0hs0ydrm1fjdkxmahzbv5iag859wnnlg0pd";
 
-  nativeBuildInputs = [ libxslt perlPackages.URI docbook_xsl ];
-  buildInputs = [ gtk3 glib libxfce4ui libxfce4util ];
+  nativeBuildInputs = [
+    libxslt
+    perlPackages.URI
+    docbook_xsl
+  ];
+
+  buildInputs = [
+    gtk2 # some xfce plugins still uses gtk2
+    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";
diff --git a/pkgs/desktops/xfce/core/thunar-volman/default.nix b/pkgs/desktops/xfce/core/thunar-volman/default.nix
index fc6db0fcce4f..ecc26ccb8fea 100644
--- a/pkgs/desktops/xfce/core/thunar-volman/default.nix
+++ b/pkgs/desktops/xfce/core/thunar-volman/default.nix
@@ -9,6 +9,8 @@ mkXfceDerivation {
 
   sha256 = "1qrlpn0q5g9psd41l6y80r3bvbg8jaic92m6r400zzwcvivf95z0";
 
+  odd-unstable = false;
+
   meta = {
     description = "Thunar extension for automatic management of removable drives and media";
   };
diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix
index 11220141d2a0..24df606e2466 100644
--- a/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/pkgs/desktops/xfce/core/thunar/default.nix
@@ -21,9 +21,9 @@
 let unwrapped = mkXfceDerivation {
   category = "xfce";
   pname = "thunar";
-  version = "1.8.9";
+  version = "1.8.14";
 
-  sha256 = "01w60csbs2nq1bhb8n1bnmjmx48fm0va3qbnq84z0h2dxpr80b1w";
+  sha256 = "1ph9bcqfm2nccliagl8zdl1dizh62qnr8m5hacri3cs2jhc0jjpy";
 
   nativeBuildInputs = [
     docbook_xsl
diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix
index b795007ca7c1..1a615b8f66a5 100644
--- a/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -14,9 +14,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "tumbler";
-  version = "0.2.7";
+  version = "0.2.8";
 
-  sha256 = "14ql3fcxyz81qr9s0vcwh6j2ks5fl8jf9scwnkilv5jy0ii9l0ry";
+  sha256 = "1y9sphaz3izal96v53lps692xxzp5pad1d09kxsmmpm7pic4n1r2";
 
   buildInputs = [
     ffmpegthumbnailer
diff --git a/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
index f4d86247c6cd..ffd42e4a2c5b 100644
--- a/pkgs/desktops/xfce/core/xfce4-panel/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-panel";
-  version = "4.14.0";
+  version = "4.14.3";
 
-  sha256 = "1v3f2xjz9gwa8maqqvv9w2dh1cgy03v89a9ny7nrv0cjsxwwrr15";
+  sha256 = "0h8cqs2bghmyp0jihjm2wc7j14k271j178vllin271xrl7kzmvzv";
 
   nativeBuildInputs = [ gobject-introspection ];
   buildInputs = [ exo garcon gtk2 gtk3 glib glib-networking libxfce4ui libxfce4util libwnck3 xfconf ];
diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
index fb3f05b36646..9f9a552b8cc6 100644
--- a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-power-manager";
-  version = "1.6.5";
+  version = "1.6.6";
 
-  sha256 = "0zazm2cgkz5xj7rvy9gbh4kaay2anfcmawg4gj38pnq3a8zcwwd5";
+  sha256 = "0lyp3dp4ijbpf21vanrvgm6rmfp8v0zyqxibdj5gxnadmvcq38iy";
 
   nativeBuildInputs = [ automakeAddFlags exo ];
   buildInputs = [ gtk3 libnotify libxfce4ui libxfce4util upower xfconf ];
diff --git a/pkgs/desktops/xfce/core/xfce4-session/default.nix b/pkgs/desktops/xfce/core/xfce4-session/default.nix
index 0ab362aa21d0..c7442a01957a 100644
--- a/pkgs/desktops/xfce/core/xfce4-session/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-session/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-session";
-  version = "4.14.0";
+  version = "4.14.2";
 
-  sha256 = "0v0xzkdr5rgv6219c1dy96cghgw8bqnb313jccxihfgddf363104";
+  sha256 = "1gr6j96l792v33lbh7rqpbdjmy8m68hy14bsndx6bykv10zvmgx2";
 
   buildInputs = [ exo gtk3 glib libxfce4ui libxfce4util libwnck3 xfconf polkit iceauth ];
 
diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 74ab96ed1bcd..9b263e5ee733 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.14.0";
+  version = "4.14.3";
 
-  sha256 = "13gmxd4sfgd6wky7s03bar58w9vl4i6jv2wncd6iajww791y5akn";
+  sha256 = "1zzngdj7mp2r6rcs8gvda1218zlz5gpnc6gsp20z32l69psp3yld";
 
   postPatch = ''
     for f in $(find . -name \*.c); do
diff --git a/pkgs/desktops/xfce/core/xfdesktop/default.nix b/pkgs/desktops/xfce/core/xfdesktop/default.nix
index afcd0d19dc33..75e9fc8cb653 100644
--- a/pkgs/desktops/xfce/core/xfdesktop/default.nix
+++ b/pkgs/desktops/xfce/core/xfdesktop/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfdesktop";
-  version = "4.14.1";
+  version = "4.14.2";
 
-  sha256 = "006w4xwmpwp34q2qkkixr3xz0vb0kny79pw64yj4304wsb5jr14g";
+  sha256 = "04fhm1pf9290sy3ymrmnfnm2x6fq5ldzvj5bjd9kz6zkx0nsq1za";
 
   buildInputs = [
     exo
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 9f49299c03a8..579e863bf9c8 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -3,6 +3,14 @@
 lib.makeScope pkgs.newScope (self: with self; {
   #### NixOS support
 
+  updateScript = pkgs.genericUpdater;
+
+  gitLister = url:
+    "${pkgs.common-updater-scripts}/bin/list-git-tags ${url}";
+
+  archiveLister = category: name:
+    "${pkgs.common-updater-scripts}/bin/list-archive-two-level-versions https://archive.xfce.org/src/${category}/${name}";
+
   mkXfceDerivation = callPackage ./mkXfceDerivation.nix { };
 
   automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh;
@@ -109,8 +117,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   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 { };
@@ -179,7 +185,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   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;
@@ -203,6 +208,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   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
+  xfce4-dict-plugin = throw "deprecated 2020-04-19: xfce4-dict-plugin is now part of xfce4-dict."; # added 2020-04-19
 
   # added 2019-11-04
   libxfce4ui_gtk3 = libxfce4ui;
diff --git a/pkgs/desktops/xfce/mkXfceDerivation.nix b/pkgs/desktops/xfce/mkXfceDerivation.nix
index b7dc83225696..4c6edf99b611 100644
--- a/pkgs/desktops/xfce/mkXfceDerivation.nix
+++ b/pkgs/desktops/xfce/mkXfceDerivation.nix
@@ -1,6 +1,16 @@
-{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, wrapGAppsHook }:
-
-{ category, pname, version, rev ? "${pname}-${version}", sha256, ... } @ args:
+{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, xfce, wrapGAppsHook }:
+
+{ category
+, pname
+, version
+, attrPath ? "xfce.${pname}"
+, rev-prefix ? "${pname}-"
+, rev ? "${rev-prefix}${version}"
+, sha256
+, odd-unstable ? true
+, patchlevel-unstable ? true
+, ...
+} @ args:
 
 let
   inherit (builtins) filter getAttr head isList;
@@ -12,7 +22,7 @@ let
   concatAttrLists = attrsets:
     zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets;
 
-  template = {
+  template = rec {
     name = "${pname}-${version}";
 
     nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ];
@@ -27,6 +37,13 @@ let
     enableParallelBuilding = true;
     outputs = [ "out" "dev" ];
 
+    pos = builtins.unsafeGetAttrPos "pname" args;
+
+    passthru.updateScript = xfce.updateScript {
+      inherit pname version attrPath rev-prefix odd-unstable patchlevel-unstable;
+      versionLister = xfce.gitLister src.url;
+    };
+
     meta = with stdenv.lib; {
       homepage = "https://git.xfce.org/${category}/${pname}/about";
       license = licenses.gpl2; # some libraries are under LGPLv2+
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
index 3966e256b160..0d047447e0c2 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
@@ -1,11 +1,12 @@
 { mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-battery-plugin";
-  version = "1.1.2";
-  rev = version;
-  sha256 = "0329miiclc8da6j0sz495p99hyrf9fjhvpmdl0556fphybz5agc0";
+  version = "1.1.3";
+  rev-prefix = "";
+  odd-unstable = false;
+  sha256 = "0ligdiasrfc3170kd7sif2ml6lvlpp11lbxz3xdvklqkv7p3323y";
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
index bd1a3b5e5e35..2349b4bf3e8d 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
@@ -1,11 +1,10 @@
 { mkXfceDerivation, gtk3, libXtst, libxfce4ui, libxfce4util, xfce4-panel, xfconf, exo }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-clipman-plugin";
-  version = "1.4.3";
-  rev = version;
-  sha256 = "1xk79xh1zk0x4r1z9m1dakp79pip0zh3naviybvl1dnpwwfc03gq";
+  version = "1.6.1";
+  sha256 = "03akijvry1n1fkziyvxwcksl4vy4lmnpgd5izjs8jai5sndhsszl";
 
   buildInputs = [ exo gtk3 libXtst libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
index 321e4792e4bc..38ad759e700c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin.nix
@@ -1,23 +1,46 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib, exo, libXtst, xorgproto, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, hicolor-icon-theme, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-cpugraph-plugin";
-  ver_maj = "1.0";
-  ver_min = "5";
+  pname  = "xfce4-cpugraph-plugin";
+  version = "1.1.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1izl53q95m5xm2fiq7385vb1i9nwgjizxkmgpgh33zdckb40xnl5";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "193bj1p54l4zrvgdjj0pvjn161d6dn82jh9invcy09sqwlj0mkiy";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool glib exo libXtst xorgproto libxfce4util libxfce4ui xfce4-panel xfconf gtk2 hicolor-icon-theme ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    glib
+    exo
+    libXtst
+    xorgproto
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    xfconf
+    gtk3
+    hicolor-icon-theme
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-cpugraph-plugin";
     description = "CPU graph show for Xfce panel";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
   };
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
index 3cfb010b12da..15f528fd5fc7 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
@@ -7,13 +7,12 @@
 , gettext
 }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-datetime-plugin";
   version = "0.8.0";
 
-  rev = "datetime-${version}";
-
+  rev-prefix = "datetime-";
   sha256 = "12drh7y70d70r93lpv43fkj5cbyl0vciz4a41nxrknrfbhxrvyah";
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix
deleted file mode 100644
index d5982ea3c12a..000000000000
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-dict-plugin.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ 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 = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Dictionary plugin for Xfce panel";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.AndersonTorres ];
-    broken = true; # see https://goodies.xfce.org/projects/panel-plugins/xfce4-dict-plugin
-  };
-}
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
index db74da2939de..673b0a24fb61 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix
@@ -2,9 +2,10 @@
 , dockbarx, gtk2, xfce, pythonPackages, wafHook }:
 
 stdenv.mkDerivation rec {
+  pname = "xfce4-dockbarx-plugin";
+  version = "${ver}-${rev}";
   ver = "0.5";
   rev = "a2dcb66";
-  name = "xfce4-dockbarx-plugin-${ver}-${rev}";
 
   src = fetchFromGitHub {
     owner = "TiZ-EX1";
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
index 94c26f9e1b2b..2b2027bcf4bc 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin.nix
@@ -1,23 +1,41 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2 }:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-embed-plugin";
-  ver_maj = "1.6";
-  ver_min = "0";
+  pname  = "xfce4-embed-plugin";
+  version = "1.6.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "0a72kqsjjh45swimqlpyrahdnplp0383v0i4phr4n6g8c1ixyry7";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk2
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
   meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-embed-plugin";
     description = "Embed arbitrary app windows on Xfce panel";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
   };
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
index 1932a9e9968e..220e25068582 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
@@ -1,25 +1,42 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-eyes-plugin";
-  ver_maj = "4.4";
-  ver_min = "4";
+  pname  = "xfce4-eyes-plugin";
+  version = "4.5.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1jh02hylvsvfpxrx0bq6fzgy6vnxf9qakgpbfvr63lfkd1dyh314";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "17gj6fbvvrdzvz61czmia8hqynllsnmhk61fs4aml443cc1h1bpx";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+  
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    xfconf
+    gtk3
+  ];
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Eyes following you!";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-eyes-plugin";
+    description = "Rolling eyes (following mouse pointer) plugin for the Xfce panel";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
index 54bb4817d7e2..b67e63f5c644 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin.nix
@@ -1,25 +1,42 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk3, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-fsguard-plugin";
-  ver_maj = "1.0";
-  ver_min = "2";
+  pname  = "xfce4-fsguard-plugin";
+  version = "1.1.1";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1bj021h4q68bc03f32pkyqy4gfd1sz6s21nxdg7j6gdfhs9xbj52";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "05nmfkrmifm76bsywqmbjd1qdvzagv5cbvnwbkb57156j055vl6n";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    xfconf
+    gtk3
+  ];
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Filesystem monitor";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-fsguard-plugin";
+    description = "Filesystem usage monitor plugin for the Xfce panel";
+    license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
index dd9827dcc5a9..417001fed53b 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin.nix
@@ -1,25 +1,41 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2}:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-genmon-plugin";
-  ver_maj = "3.4";
-  ver_min = "0";
+  pname  = "xfce4-genmon-plugin";
+  version = "4.0.2";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "11q3g6lmgz3d5lyh6614mxkd9cblfdyf9jgki7f26mn895xk79dh";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "1ai3pwgv61nv7i2dyrvncnc63r8kdjbkp40vp51vzak1dx924v15";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk3
+  ];
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Cyclically spawns a command and captures its output";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-genmon-plugin";
+    description = "Generic monitor plugin for the Xfce panel";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
index 40810abfc079..d8775c4b7045 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, intltool, autoreconfHook, gnome2, gtkmm2,
-  libgtop, libxfce4ui, libxfce4util, xfce4-panel, lm_sensors
+  libgtop, libxfce4ui, libxfce4util, xfce4-panel, lm_sensors, xfce
 }:
 
 stdenv.mkDerivation rec {
@@ -30,11 +30,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
+  meta = with stdenv.lib; {
+    homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-hardware-monitor-plugin";
     description = "Hardware monitor plugin for the XFCE4 panel";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
index 058f25917161..3d60d8b18f9a 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin.nix
@@ -1,27 +1,45 @@
 { stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
- xfconf, gtk2, exo, gnutls, libgcrypt }:
+  gtk2, exo, gnutls, libgcrypt, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-mailwatch-plugin";
-  ver_maj = "1.2";
-  ver_min = "0";
+  pname  = "xfce4-mailwatch-plugin";
+  version = "1.2.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "1bfw3smwivr9mzdyq768biqrl4aq94zqi3xjzq6kqnd8561cqjk2";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
-    xfconf gtk2 exo gnutls libgcrypt ];
+  nativeBuildInputs = [
+    intltool
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk2
+    exo # needs exo with gtk2 support
+    gnutls
+    libgcrypt
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
-    description = "Mailwatch plugin for Xfce panel";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-mailwatch-plugin";
+    description = "Mail watcher plugin for Xfce panel";
+    license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
index b936d2e441c0..bb56e875c865 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin.nix
@@ -1,27 +1,43 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui,
- xfconf, gtk2, exo }:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel,
+  libxfce4ui, gtk3, exo, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-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}";
+  pname  = "xfce4-mpc-plugin";
+  version = "0.5.2";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1kvgq1pq7cykqdc3227dq0izad093ppfw3nfsrcp9i8mi6i5f7z7";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "0q3pysdp85b3c7g3b59y3c69g4nw6bvbf518lnri4lxrnsvpizpf";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel
-    xfconf gtk2 exo ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk3
+    exo
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-mpc-plugin";
     description = "MPD plugin for Xfce panel";
     platforms = platforms.linux;
+    license = licenses.bsd2;
     maintainers = [ ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
index d774649b5369..8d258220175b 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
@@ -1,11 +1,12 @@
 { mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-netload-plugin";
-  version = "1.3.1";
-  rev = "version-${version}";
-  sha256 = "0nm8advafw4jpc9p1qszyfqa56194sz51z216rdh4c6ilcrrpy1h";
+  version = "1.3.2";
+  rev-prefix = "version-";
+  odd-unstable = false;
+  sha256 = "1py1l4z5ah4nlq8l2912k47ffsa5z7p1gbvlk7nw6b9r1x4ykdfl";
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
index 516d86f56abb..d6910d367a63 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin.nix
@@ -1,25 +1,45 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, xfconf, gtk2, libunique, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-notes-plugin";
-  ver_maj = "1.7";
-  ver_min = "7";
+  pname  = "xfce4-notes-plugin";
+  version = "1.8.1";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "05sjbwgch1j93m3r23ksbjnpfk11sf7xjmbb9pm5vl3snc2s3fm7";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "1cjlvvcsigyh40xa26b2vc5zylgss0nlaw72sablzhii2kkw7907";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf gtk2 libunique ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    xfconf
+    gtk2
+    libunique
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-notes-plugin";
     description = "Sticky notes plugin for Xfce panel";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
index 64916f92a6ff..10850974bb7d 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
@@ -2,6 +2,7 @@
 , automakeAddFlags
 , dbus-glib
 , dbus
+, exo
 , gtk3
 , libpulseaudio
 , libnotify
@@ -16,8 +17,8 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-pulseaudio-plugin";
-  version = "0.4.2";
-  sha256 = "1s996mcniskq42vv7cb9i165pmrfp9c95p5f9rx14hqq8in9mvc5";
+  version = "0.4.3";
+  sha256 = "1rfw2w8gl95iawiy57qlvz958dqjc8bmxnc3dma4rqzm6g46jkgq";
 
   nativeBuildInputs = [
     automakeAddFlags
@@ -30,6 +31,7 @@ mkXfceDerivation {
   '';
 
   buildInputs = [
+    exo
     glib
     gtk3
     keybinder3
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
index 56cad888168d..8b8dbf3e022c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk2, libxfce4ui,
-  libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libxfce4ui,
+  libxfce4util, xfce4-panel, libnotify, lm_sensors, hddtemp, netcat-gnu, xfce
 }:
 
+let
+  category = "panel-plugins";
+in
+
 stdenv.mkDerivation rec {
-  name = "${pname}-${ver_maj}.${ver_min}";
   pname  = "xfce4-sensors-plugin";
-  ver_maj = "1.2";
-  ver_min = "6";
+  version = "1.3.92";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${pname}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1h0vpqxcziml3gwrbvd8xvy1mwh9mf2a68dvxsy03rs5pm1ghpi3";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "04jibw23ibi61f19gc9xy400yhcdiya4px6zp8c7fjq65hyn9iix";
   };
 
   nativeBuildInputs = [
@@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    gtk2
+    gtk3
     libxfce4ui
     libxfce4util
     xfce4-panel
@@ -35,12 +37,18 @@ stdenv.mkDerivation rec {
     "--with-pathhddtemp=${hddtemp}/bin/hddtemp"
     "--with-pathnetcat=${netcat-gnu}/bin/netcat"
   ];
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${pname}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin";
     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 ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
index 95fb9358f946..52da6a29ea42 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin.nix
@@ -1,23 +1,40 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk2}:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-systemload-plugin";
-  ver_maj = "1.1";
-  ver_min = "2";
+  pname  = "xfce4-systemload-plugin";
+  version = "1.2.3";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "0z4as6sxdz93d4jpgv0665dg4sykfvc5068mc689phlfl2rvcsdl";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "0x87a8h5l3ashz1ksfaxcpn9a392jzlsbx5n5pga8g90fp2hf905";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel gtk2 ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk3
+  ];
+
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-systemload-plugin";
     description = "System load plugin for Xfce panel";
+    license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = [ maintainers.AndersonTorres ];
   };
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
index 4070156c2239..00b497c918d8 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -1,31 +1,44 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel
-, libxfce4ui, xfconf, gtk2, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, xfce4-panel, libxfce4ui, gtk3, hicolor-icon-theme, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-timer-plugin";
-  ver_maj = "1.6";
-  ver_min = "0";
+  pname  = "xfce4-timer-plugin";
+  version = "1.7.0";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "0z46gyw3ihcd1jf0m5z1dsc790xv1cpi8mk1dagj3i4v14gx5mrr";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "16vypwwjwfk7nn4n16rfgn0z78jqrmbgxmc1r46269lrwd1m6kif";
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
 
-  buildInputs = [ intltool libxfce4util libxfce4ui xfce4-panel xfconf
-    gtk2 hicolor-icon-theme ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [
+    libxfce4util
+    libxfce4ui
+    xfce4-panel
+    gtk3
+    hicolor-icon-theme
+  ];
 
   hardeningDisable = [ "format" ];
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://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";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-timer-plugin";
+    description = "Simple countdown and alarm plugin for the Xfce panel";
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = [ ];
-    broken = true;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
index 43e943f194ac..525bd6e5fd7d 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-vala-panel-appmenu-plugin/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xfce4-vala-panel-appmenu-plugin";
-  version = "0.6.94";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "rilian-la-te";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     rev = version;
     fetchSubmodules = true;
 
-    sha256 = "0xxn3zs60a9nfix8wrdp056wviq281cm1031hznzf1l38lp3wr5p";
+    sha256 = "06rykdr2c9rnzxwinwdynd73v9wf0gjkx6qfva7sx2n94ajsdnaw";
   };
 
   nativeBuildInputs = [ pkgconfig cmake vala libxml2.bin ];
@@ -41,6 +41,12 @@ stdenv.mkDerivation rec {
     mv cmake/FallbackVersion.cmake.in cmake/FallbackVersion.cmake
   '';
 
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.gitLister src.meta.homepage;
+  };
+
   meta = with stdenv.lib; {
     description = "Global Menu applet for XFCE4";
     license = licenses.lgpl3;
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
index 288aaddfb982..5a98173ea00c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
@@ -1,10 +1,10 @@
 { lib, mkXfceDerivation, gtk3, libxfce4ui, pcre, libxfce4util, xfce4-panel, xfconf }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-verve-plugin";
   version = "2.0.0";
-  rev = version;
+  rev-prefix = "";
   sha256 = "09vpa6m0ah7pgmra094c16vb79xrcwva808g6zpawwrhcwz85lcz";
 
   buildInputs = [ gtk3 libxfce4ui pcre libxfce4util xfce4-panel ];
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
index 0914c4cb7d97..cff2ef251ad4 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin.nix
@@ -1,29 +1,48 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk2, libxml2, libsoup, upower,
-libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme }:
+{ stdenv, fetchurl, pkgconfig, intltool, gtk3, libxml2, libsoup, upower,
+  libxfce4ui, libxfce4util, xfce4-panel, hicolor-icon-theme, xfce }:
+
+let
+  category = "panel-plugins";
+in
 
 stdenv.mkDerivation rec {
-  name = "${p_name}-${ver_maj}.${ver_min}";
-  p_name  = "xfce4-weather-plugin";
-  ver_maj = "0.8";
-  ver_min = "10";
+  pname  = "xfce4-weather-plugin";
+  version = "0.10.1";
 
   src = fetchurl {
-    url = "mirror://xfce/src/panel-plugins/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1f7ac2zr5s5w6krdpgsq252wxhhmcblia3j783132ilh8k246vgf";
+    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
 
-  buildInputs = [ gtk2 libxml2 libsoup upower libxfce4ui libxfce4util
-   xfce4-panel hicolor-icon-theme ];
+  buildInputs = [
+    gtk3
+    libxml2
+    libsoup
+    upower
+    libxfce4ui
+    libxfce4util
+    xfce4-panel
+    hicolor-icon-theme
+  ];
 
   enableParallelBuilding = true;
+  
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister category pname;
+  };
 
-  meta = {
-    homepage = "https://goodies.xfce.org/projects/panel-plugins/${p_name}";
+  meta = with stdenv.lib; {
+    homepage = "https://docs.xfce.org/panel-plugins/xfce4-weather-plugin";
     description = "Weather plugin for the Xfce desktop environment";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.romildo ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 884b8ee3a294..262093af69f1 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -1,10 +1,10 @@
 { mkXfceDerivation, gtk3, glib, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
   version = "2.4.3";
-  rev = "v${version}";
+  rev-prefix = "v";
   sha256 = "1cs3fps1bj0dd5az7fwrvw1xl3y621qk4dma3n73p7rr19j7fpsn";
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
index eba7be91ef9d..e629a08c5537 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin.nix
@@ -1,21 +1,34 @@
 { stdenv, fetchFromGitHub, pkgconfig, intltool, python3, imagemagick, libwnck, gtk2
-, exo, libxfce4ui, libxfce4util, xfce4-panel, xfconf, xfce4-dev-tools }:
+, exo, libxfce4ui, libxfce4util, xfce4-panel, xfconf, xfce4-dev-tools, xfce }:
 
 stdenv.mkDerivation rec {
-  p_name  = "xfce4-windowck-plugin";
-  version = "0.4.4";
+  pname  = "xfce4-windowck-plugin";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "cedl38";
-    repo = "xfce4-windowck-plugin";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0c6a1ibh39dpq9x0dha5lsg0vzmgaf051fgwz0nlky0s94nwzvgv";
+    sha256 = "1gwrbjfv4cnlsqh05h42w41z3xs15yjj6j8y9gxvvvvlgzzp4p3g";
   };
-  name = "${p_name}-${version}";
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool python3 imagemagick libwnck gtk2
-    exo libxfce4ui libxfce4util xfce4-panel xfconf xfce4-dev-tools ];
+  nativeBuildInputs = [
+    pkgconfig
+    intltool
+  ];
+
+  buildInputs = [
+    python3
+    imagemagick
+    libwnck
+    gtk2
+    exo
+    libxfce4ui
+    libxfce4util
+    xfce4-panel
+    xfconf
+    xfce4-dev-tools
+  ];
 
   preConfigure = ''
     ./autogen.sh
@@ -24,9 +37,16 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.gitLister src.meta.homepage;
+    rev-prefix = "v";
+  };
+
   meta = with stdenv.lib; {
-    homepage = "https://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";
+    homepage = "https://goodies.xfce.org/projects/panel-plugins/xfce4-windowck-plugin";
+    description = "Xfce plugins which allows to put the maximized window title and buttons on the panel";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.volth ];
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
index 4497a7b0e36a..a08621594890 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
@@ -1,10 +1,10 @@
 { lib, mkXfceDerivation, gtk3, librsvg, libwnck3, libxklavier, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-xkb-plugin";
   version = "0.8.1";
-  rev = version;
+  rev-prefix = "";
   sha256 = "1gyky4raynp2ggdnq0g96c6646fjm679fzipcsmf1q0aymr8d5ky";
 
   buildInputs = [ garcon gtk3 librsvg libxfce4ui libxfce4util libxklavier libwnck3 xfce4-panel xfconf ];
diff --git a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
index e3c72d3b50e2..6b255dc72012 100644
--- a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , mkXfceDerivation
-, fetchFromGitHub
 , gtk3
 , thunar
 , exo
@@ -9,7 +8,7 @@
 , gettext
 }:
 
-mkXfceDerivation rec {
+mkXfceDerivation {
   category = "thunar-plugins";
   pname  = "thunar-archive-plugin";
   version = "0.4.0";
diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
index 8674c586552c..61e9d94acc5d 100644
--- a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -5,6 +5,7 @@
 , thunar
 , cmake
 , ninja
+, xfce
 }:
 
 stdenv.mkDerivation rec {
@@ -31,6 +32,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.thunar-dropbox-plugin";
+    versionLister = xfce.gitLister src.meta.homepage;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/Jeinzi/thunar-dropbox";
     description = "A plugin that adds context-menu items for Dropbox to Thunar";