summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix28
-rw-r--r--pkgs/applications/editors/kdevelop5/kdevelop.nix22
-rw-r--r--pkgs/applications/editors/kile/default.nix77
-rw-r--r--pkgs/applications/graphics/digikam/default.nix57
-rw-r--r--pkgs/applications/kde/ark/default.nix57
-rw-r--r--pkgs/applications/kde/dolphin-plugins.nix2
-rw-r--r--pkgs/applications/kde/dolphin.nix39
-rw-r--r--pkgs/applications/kde/filelight.nix31
-rw-r--r--pkgs/applications/kde/gwenview.nix35
-rw-r--r--pkgs/applications/kde/k3b.nix63
-rw-r--r--pkgs/applications/kde/kate.nix40
-rw-r--r--pkgs/applications/kde/kcachegrind.nix34
-rw-r--r--pkgs/applications/kde/kcalc.nix32
-rw-r--r--pkgs/applications/kde/kcolorchooser.nix29
-rw-r--r--pkgs/applications/kde/kcontacts.nix5
-rw-r--r--pkgs/applications/kde/kdenlive.nix27
-rw-r--r--pkgs/applications/kde/kdf.nix29
-rw-r--r--pkgs/applications/kde/kgpg.nix12
-rw-r--r--pkgs/applications/kde/khelpcenter.nix25
-rw-r--r--pkgs/applications/kde/kig.nix32
-rw-r--r--pkgs/applications/kde/kmix.nix41
-rw-r--r--pkgs/applications/kde/kolourpaint.nix28
-rw-r--r--pkgs/applications/kde/kompare.nix25
-rw-r--r--pkgs/applications/kde/konsole.nix37
-rw-r--r--pkgs/applications/kde/krfb.nix27
-rw-r--r--pkgs/applications/kde/kwalletmanager.nix32
-rw-r--r--pkgs/applications/kde/marble.nix32
-rw-r--r--pkgs/applications/kde/okteta.nix33
-rw-r--r--pkgs/applications/kde/okular.nix38
-rw-r--r--pkgs/applications/kde/print-manager.nix4
-rw-r--r--pkgs/applications/kde/spectacle.nix29
-rw-r--r--pkgs/applications/misc/krename/default.nix43
-rw-r--r--pkgs/applications/misc/krusader/default.nix35
-rw-r--r--pkgs/applications/misc/latte-dock/default.nix45
-rw-r--r--pkgs/applications/misc/yakuake/default.nix47
-rw-r--r--pkgs/applications/networking/irc/konversation/default.nix91
-rw-r--r--pkgs/build-support/kde/wrapper.nix68
-rw-r--r--pkgs/desktops/plasma-5/oxygen.nix22
-rw-r--r--pkgs/tools/misc/kronometer/default.nix32
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix39
-rw-r--r--pkgs/tools/misc/peruse/default.nix41
-rw-r--r--pkgs/tools/security/kwalletcli/default.nix78
-rw-r--r--pkgs/tools/text/kdiff3/default.nix81
-rw-r--r--pkgs/top-level/all-packages.nix4
44 files changed, 653 insertions, 975 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index d981cd5328e..27678fda1b5 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -7,7 +7,7 @@ let
   xcfg = config.services.xserver;
   cfg = xcfg.desktopManager.plasma5;
 
-  inherit (pkgs) kdeWrapper kdeApplications plasma5 libsForQt5 qt5 xorg;
+  inherit (pkgs) kdeApplications plasma5 libsForQt5 qt5 xorg;
 
 in
 
@@ -30,24 +30,12 @@ in
         '';
       };
 
-      extraPackages = mkOption {
-        type = types.listOf types.package;
-        default = [];
-        description = ''
-          KDE packages that need to be installed system-wide.
-        '';
-      };
-
     };
 
   };
 
 
   config = mkMerge [
-    (mkIf (cfg.extraPackages != []) {
-      environment.systemPackages = [ (kdeWrapper cfg.extraPackages) ];
-    })
-
     (mkIf (xcfg.enable && cfg.enable) {
       services.xserver.desktopManager.session = singleton {
         name = "plasma5";
@@ -139,10 +127,14 @@ in
           plasma-workspace
           plasma-workspace-wallpapers
 
+          dolphin
           dolphin-plugins
           ffmpegthumbs
           kdegraphics-thumbnailers
+          khelpcenter
           kio-extras
+          konsole
+          oxygen
           print-manager
 
           breeze-icons
@@ -163,16 +155,6 @@ in
         ++ lib.optional config.services.colord.enable colord-kde
         ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ];
 
-      services.xserver.desktopManager.plasma5.extraPackages =
-        with kdeApplications; with plasma5;
-        [
-          khelpcenter
-          oxygen
-
-          dolphin
-          konsole
-        ];
-
       environment.pathsToLink = [ "/share" ];
 
       environment.etc = singleton {
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/editors/kdevelop5/kdevelop.nix
index c599666f4d5..d4f07d82bf0 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/editors/kdevelop5/kdevelop.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules, makeQtWrapper
+{ mkDerivation, lib, fetchurl, cmake, gettext, pkgconfig, extra-cmake-modules, wrapGAppsHook
 , qtquickcontrols, qtwebkit, qttools, kde-cli-tools
 , kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews
 , kjobwidgets, kcmutils, kio, knewstuff, knotifyconfig, kparts, ktexteditor
@@ -12,7 +12,7 @@ let
   version = "5.1.1";
 
 in
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
@@ -21,24 +21,26 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    cmake gettext pkgconfig extra-cmake-modules makeWrapper makeQtWrapper
+    cmake gettext pkgconfig extra-cmake-modules makeWrapper wrapGAppsHook
   ];
 
   buildInputs = [
+    kdevelop-pg-qt
+    llvmPackages.llvm llvmPackages.clang-unwrapped
+  ];
+
+  propagatedBuildInputs = [
     qtquickcontrols qtwebkit
     kconfig kdeclarative kdoctools kiconthemes ki18n kitemmodels kitemviews
     kjobwidgets kcmutils kio knewstuff knotifyconfig kparts ktexteditor
     threadweaver kxmlgui kwindowsystem grantlee plasma-framework krunner
-    kdevplatform kdevelop-pg-qt shared_mime_info libksysguard konsole.unwrapped
-    llvmPackages.llvm llvmPackages.clang-unwrapped
+    kdevplatform shared_mime_info libksysguard konsole
   ];
 
   postInstall = ''
-    wrapQtProgram "$out/bin/kdevelop"
-    
     # The kdevelop! script (shell environment) needs qdbus and kioclient5 in PATH.
     wrapProgram "$out/bin/kdevelop!" --prefix PATH ":" "${qttools}/bin:${kde-cli-tools}/bin"
-    
+
     # Fix the (now wrapped) kdevelop! to find things in right places:
     # - Make KDEV_BASEDIR point to bin directory of kdevplatform.
     kdev_fixup_sed="s|^export KDEV_BASEDIR=.*$|export KDEV_BASEDIR=${kdevplatform}/bin|"
@@ -47,7 +49,7 @@ stdenv.mkDerivation rec {
     sed -E -i "$kdev_fixup_sed" "$out/bin/.kdevelop!-wrapped"
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     maintainers = [ maintainers.ambrop72 ];
     platforms = platforms.linux;
     description = "KDE official IDE";
@@ -60,6 +62,6 @@ stdenv.mkDerivation rec {
         libraries and is under development since 1998.
       '';
     homepage = https://www.kdevelop.org;
-    license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ];
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
   };
 }
diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix
index 3834269f180..259c319c70f 100644
--- a/pkgs/applications/editors/kile/default.nix
+++ b/pkgs/applications/editors/kile/default.nix
@@ -3,7 +3,7 @@
 , fetchgit
 , extra-cmake-modules
 , kdoctools
-, kdeWrapper
+, wrapGAppsHook
 , qtscript
 , kconfig
 , kcrash
@@ -21,50 +21,43 @@
 , poppler
 }:
 
-let
-  unwrapped =
-    mkDerivation rec {
-      name = "kile-${version}";
-      version = "2017-02-09";
+mkDerivation rec {
+  name = "kile-${version}";
+  version = "2017-02-09";
 
-      src = fetchgit {
-        url = git://anongit.kde.org/kile.git;
-        rev = "f77f6e627487c152f111e307ad6dc71699ade746";
-        sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib";
+  src = fetchgit {
+    url = git://anongit.kde.org/kile.git;
+    rev = "f77f6e627487c152f111e307ad6dc71699ade746";
+    sha256 = "0wpqaix9ssa28cm7qqjj0zfrscjgk8s3kmi5b4kk8h583gsrikib";
 
-      };
+  };
 
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
 
-      buildInputs = [
-        kconfig
-        kcrash
-        kdbusaddons
-        kdelibs4support
-        kdoctools
-        kguiaddons
-        kiconthemes
-        kinit
-        khtml
-        kparts
-        ktexteditor
-        kwindowsystem
-        okular.unwrapped
-        poppler
-        qtscript
-      ];
+  propagatedBuildInputs = [
+    kconfig
+    kcrash
+    kdbusaddons
+    kdelibs4support
+    kdoctools
+    kguiaddons
+    kiconthemes
+    kinit
+    khtml
+    kparts
+    ktexteditor
+    kwindowsystem
+    okular
+    poppler
+    qtscript
+  ];
 
-      meta = {
-        description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
-        homepage = https://www.kde.org/applications/office/kile/;
-        maintainers = with lib.maintainers; [ fridh ];
-        license = lib.licenses.gpl2Plus;
-      };
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kile" ];
-  paths = [ konsole.unwrapped okular.unwrapped ];
+  propagatedUserEnvPkgs = [ konsole ];
+
+  meta = {
+    description = "Kile is a user friendly TeX/LaTeX authoring tool for the KDE desktop environment";
+    homepage = https://www.kde.org/applications/office/kile/;
+    maintainers = with lib.maintainers; [ fridh ];
+    license = lib.licenses.gpl2Plus;
+  };
 }
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index f1179101692..96b1ca54d55 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, extra-cmake-modules, makeQtWrapper
+{ mkDerivation, lib, fetchurl, cmake, extra-cmake-modules, wrapGAppsHook
 
 # For `digitaglinktree`
 , perl, sqlite
@@ -44,7 +44,7 @@
 , oxygen
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   name    = "digikam-${version}";
   version = "5.4.0";
 
@@ -53,26 +53,11 @@ stdenv.mkDerivation rec {
     sha256 = "0dgsgji14l5zvxny36hrfsp889fsfrsbbn9bg57m18404xp903kg";
   };
 
-  nativeBuildInputs = [ cmake extra-cmake-modules makeQtWrapper ];
+  nativeBuildInputs = [ cmake extra-cmake-modules kdoctools wrapGAppsHook ];
 
   patches = [ ./0001-Disable-fno-operator-names.patch ];
 
   buildInputs = [
-    qtbase
-    qtxmlpatterns
-    qtsvg
-    qtwebkit
-
-    kconfigwidgets
-    kcoreaddons
-    kdoctools
-    kfilemetadata
-    knotifications
-    knotifyconfig
-    ktextwidgets
-    kwidgetsaddons
-    kxmlgui
-
     bison
     boost
     eigen
@@ -86,12 +71,28 @@ stdenv.mkDerivation rec {
     liblqr1
     libqtav
     libusb1
-    marble.unwrapped
     mysql
     opencv
-    threadweaver
+  ];
 
+  propagatedBuildInputs = [
+    qtbase
+    qtxmlpatterns
+    qtsvg
+    qtwebkit
+
+    kconfigwidgets
+    kcoreaddons
+    kfilemetadata
+    knotifications
+    knotifyconfig
+    ktextwidgets
+    kwidgetsaddons
+    kxmlgui
+
+    marble
     oxygen
+    threadweaver
   ];
 
   enableParallelBuilding = true;
@@ -104,22 +105,18 @@ stdenv.mkDerivation rec {
     "-DENABLE_MEDIAPLAYER=1"
   ];
 
-  fixupPhase = ''
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
     substituteInPlace $out/bin/digitaglinktree \
       --replace "/usr/bin/perl" "${perl}/bin/perl" \
       --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
-
-    wrapQtProgram $out/bin/digikam \
-      --prefix PATH : "${gnumake}/bin:${hugin}/bin:${enblend-enfuse}/bin"
-
-    wrapQtProgram $out/bin/showfoto
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Photo Management Program";
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
     homepage = http://www.digikam.org;
-    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index d7a6ee2bdc7..f52f30c7917 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -1,7 +1,7 @@
 {
-  mkDerivation, lib, config, kdeWrapper,
+  mkDerivation, lib, config, wrapGAppsHook,
 
-  extra-cmake-modules, kdoctools, makeWrapper,
+  extra-cmake-modules, kdoctools,
 
   karchive, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, khtml, kio,
   kservice, kpty, kwidgetsaddons, libarchive, kitemmodels,
@@ -13,35 +13,26 @@
   unfreeEnableUnrar ? false, unrar,
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "ark";
-      nativeBuildInputs = [
-        extra-cmake-modules kdoctools makeWrapper
-      ];
-      propagatedBuildInputs = [
-        khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
-        kpty kwidgetsaddons libarchive kitemmodels
-      ];
-      postInstall =
-        let
-          PATH =
-            lib.makeBinPath
-            ([ p7zip unzipNLS zip ] ++ lib.optional unfreeEnableUnrar unrar);
-        in ''
-          wrapProgram "$out/bin/ark" \
-              --prefix PATH : "${PATH}"
-        '';
-      meta = {
-        license = with lib.licenses;
-          [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/ark" ];
+mkDerivation {
+  name = "ark";
+  nativeBuildInputs = [
+    extra-cmake-modules kdoctools wrapGAppsHook
+  ];
+  propagatedBuildInputs = [
+    khtml ki18n kio karchive kconfig kcrash kdbusaddons kiconthemes kservice
+    kpty kwidgetsaddons libarchive kitemmodels
+  ];
+  preFixup =
+    let
+      PATH =
+        lib.makeBinPath
+        ([ p7zip unzipNLS zip ] ++ lib.optional unfreeEnableUnrar unrar);
+    in ''
+      gappsWrapperArgs+=(--prefix PATH : "${PATH}")
+    '';
+  meta = {
+    license = with lib.licenses;
+      [ gpl2 lgpl3 ] ++ lib.optional unfreeEnableUnrar unfree;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
 }
diff --git a/pkgs/applications/kde/dolphin-plugins.nix b/pkgs/applications/kde/dolphin-plugins.nix
index 670b040f79f..eb823641ae4 100644
--- a/pkgs/applications/kde/dolphin-plugins.nix
+++ b/pkgs/applications/kde/dolphin-plugins.nix
@@ -12,6 +12,6 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   propagatedBuildInputs = [
-    dolphin.unwrapped kdelibs4support ki18n kio kxmlgui
+    dolphin kdelibs4support ki18n kio kxmlgui
   ];
 }
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 746afa2732d..ff5be6fdd88 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -1,32 +1,23 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools, makeQtWrapper,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools,
   baloo, baloo-widgets, dolphin-plugins, kactivities, kbookmarks, kcmutils,
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
   konsole, kparts, ktexteditor, kwindowsystem, phonon, solid
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "dolphin";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools makeQtWrapper ];
-      propagatedBuildInputs = [
-        baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
-        kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
-        kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
-        phonon solid
-      ];
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/dolphin" ];
-  paths = [ dolphin-plugins konsole.unwrapped ];
+mkDerivation {
+  name = "dolphin";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  propagatedBuildInputs = [
+    baloo baloo-widgets kactivities kbookmarks kcmutils kcompletion kconfig
+    kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
+    kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
+    phonon solid
+  ];
 }
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index c09b5f5106a..d3925d54988 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -1,24 +1,17 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kio, kparts, kxmlgui, qtscript, solid
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "filelight";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ fridh vcunat ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kio kparts kxmlgui qtscript solid
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/filelight" ];
+mkDerivation {
+  name = "filelight";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh vcunat ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kio kparts kxmlgui qtscript solid
+  ];
 }
diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix
index 19b2fd751f7..d206e901f8e 100644
--- a/pkgs/applications/kde/gwenview.nix
+++ b/pkgs/applications/kde/gwenview.nix
@@ -1,27 +1,20 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   baloo, exiv2, kactivities, kdelibs4support, kio, kipi-plugins, lcms2,
   libkdcraw, libkipi, phonon, qtimageformats, qtsvg, qtx11extras
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "gwenview";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        baloo kactivities kdelibs4support kio exiv2 lcms2 libkdcraw
-        libkipi phonon qtimageformats qtsvg qtx11extras
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/gwenview" ];
-  paths = [ kipi-plugins ];
+mkDerivation {
+  name = "gwenview";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    baloo kactivities kdelibs4support kio exiv2 lcms2 libkdcraw
+    libkipi phonon qtimageformats qtsvg qtx11extras
+  ];
+  propagatedUserEnvPkgs = [ kipi-plugins ];
 }
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index c21ce4a3e18..6fd6fbee9f5 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, kdeWrapper, extra-cmake-modules
+{ mkDerivation, lib, wrapGAppsHook, extra-cmake-modules
 , qtwebkit
 , libkcddb, kcmutils, kdoctools, kfilemetadata, knewstuff, knotifyconfig, solid, kxmlgui
 , flac, lame, libmad, libmpcdec, libvorbis
@@ -7,35 +7,34 @@
 , ffmpeg, libmusicbrainz2, normalize, sox, transcode
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "k3b";
-      meta = with lib; {
-        license = with licenses; [ gpl2Plus ];
-        maintainers = with maintainers; [ sander phreedom ];
-        platforms = platforms.linux;
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        # qt
-        qtwebkit
-        # kde
-        libkcddb kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui
-        # formats
-        flac lame libmad libmpcdec libvorbis
-        # sound utilities
-        libsamplerate libsndfile taglib
-        # cd/dvd
-        cdparanoia libdvdcss libdvdread
-        # others
-        ffmpeg libmusicbrainz2
-      ];
-      enableParallelBuilding = true;
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/k3b" ];
-  paths = [ cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode vcdimager ];
+mkDerivation {
+  name = "k3b";
+  meta = with lib; {
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ sander phreedom ];
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    # qt
+    qtwebkit
+    # kde
+    libkcddb kcmutils kfilemetadata knewstuff knotifyconfig solid kxmlgui
+    # formats
+    flac lame libmad libmpcdec libvorbis
+    # sound utilities
+    libsamplerate libsndfile taglib
+    # cd/dvd
+    cdparanoia libdvdcss libdvdread
+    # others
+    ffmpeg libmusicbrainz2
+  ];
+  preFixup =
+    let k3bPath = lib.makeBinPath [
+          cdrdao cdrtools dvdplusrwtools libburn normalize sox transcode
+          vcdimager
+        ];
+    in ''
+      gappsWrapperArgs+=(--prefix PATH : "${k3bPath}")
+    '';
 }
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index 7a138afb8ed..357abf96505 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -1,32 +1,24 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kactivities, kconfig, kcrash, kdbusaddons, kguiaddons, kiconthemes, ki18n,
   kinit, kio, kitemmodels, kjobwidgets, knewstuff, knotifications, konsole,
   kparts, ktexteditor, kwindowsystem, kwallet, kxmlgui, libgit2,
   plasma-framework, qtscript, threadweaver
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kate";
-      meta = {
-        license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
-        qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
-        kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
-        knewstuff libgit2
-      ];
-    };
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kate" "bin/kwrite" ];
-  paths = [ konsole.unwrapped ];
+mkDerivation {
+  name = "kate";
+  meta = {
+    license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kactivities ki18n kio ktexteditor kwindowsystem plasma-framework
+    qtscript kconfig kcrash kguiaddons kiconthemes kinit kjobwidgets kparts
+    kxmlgui kdbusaddons kwallet kitemmodels knotifications threadweaver
+    knewstuff libgit2
+  ];
+  propagatedUserEnvPkgs = [ konsole ];
 }
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index fd5c4502c9d..c45edc87f89 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -1,28 +1,20 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kio, ki18n,
   perl, python, php
 }:
 
-kdeWrapper {
-  unwrapped = mkDerivation {
-    name = "kcachegrind";
-    meta = {
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ orivej ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    buildInputs = [ perl python php kio ki18n ];
-    enableParallelBuilding = true;
+mkDerivation {
+  name = "kcachegrind";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ orivej ];
   };
-
-  targets = [
-    "bin/kcachegrind"
-    "bin/dprof2calltree"    # perl
-    "bin/hotshot2calltree"  # python
-    "bin/memprof2calltree"  # perl
-    "bin/op2calltree"       # perl
-    "bin/pprof2calltree"    # php
-  ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kio ];
+  buildInputs = [ perl python php ki18n ];
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ perl php python]}")
+  '';
 }
diff --git a/pkgs/applications/kde/kcalc.nix b/pkgs/applications/kde/kcalc.nix
index 6ce0722d3e4..2a3d7e17a55 100644
--- a/pkgs/applications/kde/kcalc.nix
+++ b/pkgs/applications/kde/kcalc.nix
@@ -1,24 +1,18 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kconfigwidgets, kguiaddons, kinit, knotifications, gmp
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kcalc";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = [ lib.maintainers.fridh ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        gmp kconfig kconfigwidgets kguiaddons kinit knotifications
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kcalc" ];
+mkDerivation {
+  name = "kcalc";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.fridh ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  buildInputs = [ gmp ];
+  propagatedBuildInputs = [
+    kconfig kconfigwidgets kguiaddons kinit knotifications
+  ];
 }
diff --git a/pkgs/applications/kde/kcolorchooser.nix b/pkgs/applications/kde/kcolorchooser.nix
index f910b99f603..5f33611f29a 100644
--- a/pkgs/applications/kde/kcolorchooser.nix
+++ b/pkgs/applications/kde/kcolorchooser.nix
@@ -1,21 +1,16 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, ki18n, kwidgetsaddons, kxmlgui
+  mkDerivation, lib,
+  extra-cmake-modules, wrapGAppsHook,
+  ki18n, kwidgetsaddons, kxmlgui
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kcolorchooser";
-      meta = {
-        license = with lib.licenses; [ mit ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules ];
-      propagatedBuildInputs = [ ki18n kwidgetsaddons kxmlgui ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kcolorchooser" ];
+mkDerivation {
+  name = "kcolorchooser";
+  meta = {
+    license = with lib.licenses; [ mit ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
+  buildInputs = [ ki18n ];
+  propagatedBuildInputs = [ kwidgetsaddons kxmlgui ];
 }
diff --git a/pkgs/applications/kde/kcontacts.nix b/pkgs/applications/kde/kcontacts.nix
index d49ba125474..a56ca684545 100644
--- a/pkgs/applications/kde/kcontacts.nix
+++ b/pkgs/applications/kde/kcontacts.nix
@@ -10,6 +10,7 @@ mkDerivation {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  nativeBuildInputs = [ extra-cmake-modules ki18n ];
-  buildInputs = [ kcoreaddons kconfig kcodecs ];
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ ki18n ];
+  propagatedBuildInputs = [ kcoreaddons kconfig kcodecs ];
 }
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index 4e59e12e8fd..c9929026aa6 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -1,8 +1,8 @@
 { mkDerivation
-, kdeWrapper
 , lib
 , extra-cmake-modules
 , kdoctools
+, wrapGAppsHook
 , qtscript
 , kactivities
 , kconfig
@@ -31,8 +31,7 @@
 , qtquickcontrols
 }:
 
-let
-unwrapped = mkDerivation {
+mkDerivation {
   name = "kdenlive";
   patches = [
     ./kdenlive-cmake-concurrent-module.patch
@@ -40,6 +39,7 @@ unwrapped = mkDerivation {
   nativeBuildInputs = [
     extra-cmake-modules
     kdoctools
+    wrapGAppsHook
   ];
   buildInputs = [
     qtscript
@@ -61,25 +61,12 @@ unwrapped = mkDerivation {
     ffmpeg
   ];
   propagatedBuildInputs = [
-    kactivities
-    ki18n
-    kio
-    kio-extras
-    kwindowsystem
-    kfilemetadata
-    plasma-framework
-    phonon-backend-gstreamer
-    qtquickcontrols
+    kactivities kconfig kcrash kguiaddons kiconthemes kinit kio kio-extras
+    kdbusaddons kfilemetadata knotifications knewstuff karchive knotifyconfig
+    kplotting ktextwidgets kwindowsystem plasma-framework
+    phonon-backend-gstreamer qtquickcontrols shared_mime_info
   ];
-  enableParallelBuilding = true;
   meta = {
     license = with lib.licenses; [ gpl2Plus ];
   };
-};
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/kdenlive" ];
-  paths = [ kinit ];
 }
diff --git a/pkgs/applications/kde/kdf.nix b/pkgs/applications/kde/kdf.nix
index aaeac0161f5..5a969aa15cf 100644
--- a/pkgs/applications/kde/kdf.nix
+++ b/pkgs/applications/kde/kdf.nix
@@ -1,24 +1,15 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kcmutils
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kdf";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = [ lib.maintainers.peterhoeg ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kcmutils
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kdf" ];
+mkDerivation {
+  name = "kdf";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = [ lib.maintainers.peterhoeg ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kcmutils ];
 }
diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix
index 5b462c2712f..1a30b0685f8 100644
--- a/pkgs/applications/kde/kgpg.nix
+++ b/pkgs/applications/kde/kgpg.nix
@@ -1,6 +1,6 @@
 {
-  mkDerivation, lib, makeQtWrapper,
-  extra-cmake-modules, kdoctools, ki18n,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, ki18n, wrapGAppsHook,
   akonadi-contacts, gnupg1, gpgme, karchive, kcodecs, kcontacts, kcoreaddons, kcrash,
   kdbusaddons, kiconthemes, kjobwidgets, kio, knotifications, kservice,
   ktextwidgets, kxmlgui, kwidgetsaddons, kwindowsystem
@@ -8,14 +8,14 @@
 
 mkDerivation {
   name = "kgpg";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ki18n wrapGAppsHook ];
   buildInputs = [
     akonadi-contacts gnupg1 gpgme karchive kcodecs kcontacts kcoreaddons kcrash kdbusaddons
     kiconthemes kjobwidgets kio knotifications kservice ktextwidgets kxmlgui
-    kwidgetsaddons kwindowsystem makeQtWrapper
+    kwidgetsaddons kwindowsystem
   ];
-  postInstall = ''
-    wrapQtProgram $out/bin/kgpg --suffix PATH : ${lib.makeBinPath [ gnupg1 ]}
+  preFixup = ''
+    gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ gnupg1 ]})
   '';
   meta = {
     license = [ lib.licenses.gpl2 ];
diff --git a/pkgs/applications/kde/khelpcenter.nix b/pkgs/applications/kde/khelpcenter.nix
index e88bef4c652..9862d75fdf4 100644
--- a/pkgs/applications/kde/khelpcenter.nix
+++ b/pkgs/applications/kde/khelpcenter.nix
@@ -1,22 +1,15 @@
 {
-  mkDerivation, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   grantlee, kconfig, kcoreaddons, kdbusaddons, ki18n, kinit, kcmutils,
   kdelibs4support, khtml, kservice, xapian
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "khelpcenter";
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [
-        grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons
-        kinit kcmutils kservice xapian
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/khelpcenter" ];
+mkDerivation {
+  name = "khelpcenter";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  buildInputs = [
+    grantlee kdelibs4support khtml ki18n kconfig kcoreaddons kdbusaddons
+    kinit kcmutils kservice xapian
+  ];
 }
diff --git a/pkgs/applications/kde/kig.nix b/pkgs/applications/kde/kig.nix
index 03229f9a150..6fdad9766b2 100644
--- a/pkgs/applications/kde/kig.nix
+++ b/pkgs/applications/kde/kig.nix
@@ -1,26 +1,18 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kparts, qtsvg, qtxmlpatterns, ktexteditor, boost
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kig";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ raskin ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [
-        kparts qtsvg qtxmlpatterns ktexteditor boost
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kig" ];
+mkDerivation {
+  name = "kig";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ raskin ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  buildInputs = [
+    kparts qtsvg qtxmlpatterns ktexteditor boost
+  ];
 }
 
-
diff --git a/pkgs/applications/kde/kmix.nix b/pkgs/applications/kde/kmix.nix
index 483983571dd..cc5e67a1ddc 100644
--- a/pkgs/applications/kde/kmix.nix
+++ b/pkgs/applications/kde/kmix.nix
@@ -1,30 +1,23 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kglobalaccel, kxmlgui, kcoreaddons, kdelibs4support,
   plasma-framework, libpulseaudio, alsaLib, libcanberra_kde
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kmix";
-      meta = {
-        license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-        maintainers = [ lib.maintainers.rongcuid ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      buildInputs = [ libpulseaudio alsaLib libcanberra_kde ];
-      propagatedBuildInputs = [
-        kglobalaccel kxmlgui kcoreaddons kdelibs4support
-        plasma-framework
-      ];
-      cmakeFlags = [
-        "-DKMIX_KF5_BUILD=1"
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kmix" ];
+mkDerivation {
+  name = "kmix";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = [ lib.maintainers.rongcuid ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  buildInputs = [ libpulseaudio alsaLib libcanberra_kde ];
+  propagatedBuildInputs = [
+    kglobalaccel kxmlgui kcoreaddons kdelibs4support
+    plasma-framework
+  ];
+  cmakeFlags = [
+    "-DKMIX_KF5_BUILD=1"
+  ];
 }
diff --git a/pkgs/applications/kde/kolourpaint.nix b/pkgs/applications/kde/kolourpaint.nix
index bdfeb233af3..a9e6904156a 100644
--- a/pkgs/applications/kde/kolourpaint.nix
+++ b/pkgs/applications/kde/kolourpaint.nix
@@ -1,28 +1,18 @@
 { lib
 , mkDerivation
-, kdeWrapper
 , extra-cmake-modules
 , kdoctools
+, wrapGAppsHook
 , kdelibs4support
 , libkexiv2
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kolourpaint";
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kdelibs4support
-        libkexiv2
-      ];
-
-      meta = {
-        maintainers = [ lib.maintainers.fridh ];
-        license = with lib.licenses; [ gpl2 ];
-      };
-    };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = ["bin/kolourpaint"];
+mkDerivation {
+  name = "kolourpaint";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kdelibs4support libkexiv2 ];
+  meta = {
+    maintainers = [ lib.maintainers.fridh ];
+    license = with lib.licenses; [ gpl2 ];
+  };
 }
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index c14f15707aa..1a0c2211c80 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -1,21 +1,14 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kparts, ktexteditor, kwidgetsaddons, libkomparediff2
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "kompare";
-      meta = { license = with lib.licenses; [ gpl2 ]; };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kparts ktexteditor kwidgetsaddons libkomparediff2
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kompare" ];
+mkDerivation {
+  name = "kompare";
+  meta = { license = with lib.licenses; [ gpl2 ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kparts ktexteditor kwidgetsaddons libkomparediff2
+  ];
 }
diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix
index 4eb45c74480..4a4a261c433 100644
--- a/pkgs/applications/kde/konsole.nix
+++ b/pkgs/applications/kde/konsole.nix
@@ -1,30 +1,23 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kguiaddons,
   ki18n, kiconthemes, kinit, kdelibs4support, kio, knotifications,
   knotifyconfig, kparts, kpty, kservice, ktextwidgets, kwidgetsaddons,
   kwindowsystem, kxmlgui, qtscript
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "konsole";
-      meta = {
-        license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-        maintainers = [ lib.maintainers.ttuegel ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion
-        kconfig kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio
-        knotifications knotifyconfig kparts kpty kservice ktextwidgets
-        kwidgetsaddons kxmlgui
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/konsole" ];
+mkDerivation {
+  name = "konsole";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kdelibs4support ki18n kwindowsystem qtscript kbookmarks kcompletion
+    kconfig kconfigwidgets kcoreaddons kguiaddons kiconthemes kinit kio
+    knotifications knotifyconfig kparts kpty kservice ktextwidgets
+    kwidgetsaddons kxmlgui
+  ];
 }
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index 3ad7b436dbc..a5a34b68460 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -1,22 +1,15 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kdelibs4support, kdnssd, libvncserver, libXtst
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "krfb";
-      meta = {
-        license = with lib.licenses; [ gpl2 fdl12 ];
-        maintainers = with lib.maintainers; [ jerith666 ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [ kdelibs4support kdnssd libvncserver libXtst ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krfb" ];
+mkDerivation {
+  name = "krfb";
+  meta = {
+    license = with lib.licenses; [ gpl2 fdl12 ];
+    maintainers = with lib.maintainers; [ jerith666 ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kdelibs4support kdnssd libvncserver libXtst ];
 }
diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix
index efdcac650bb..9194b45c401 100644
--- a/pkgs/applications/kde/kwalletmanager.nix
+++ b/pkgs/applications/kde/kwalletmanager.nix
@@ -1,8 +1,8 @@
 { lib
 , mkDerivation
-, kdeWrapper
 , extra-cmake-modules
 , kdoctools
+, wrapGAppsHook
 , kauth
 , kcmutils
 , kconfigwidgets
@@ -12,25 +12,15 @@
 , kxmlgui
 }:
 
-let
-  unwrapped = mkDerivation {
-    name = "kwalletmanager";
-    meta = {
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ fridh ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [
-      kauth
-      kcmutils
-      kconfigwidgets
-      kcoreaddons
-      kdbusaddons
-      kdelibs4support
-      kxmlgui
-    ];
+mkDerivation {
+  name = "kwalletmanager";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh ];
   };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = ["bin/kwalletmanager5"];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kauth kcmutils kconfigwidgets kcoreaddons kdbusaddons kdelibs4support
+    kxmlgui
+  ];
 }
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index eb059a1b398..169b801b30d 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -1,28 +1,16 @@
-{ mkDerivation, lib, kdeWrapper
-, extra-cmake-modules, kdoctools
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools, wrapGAppsHook
 , qtscript, qtsvg, qtquickcontrols, qtwebkit
 , krunner, shared_mime_info, kparts, knewstuff
 , gpsd, perl
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "marble";
-      meta.license = with lib.licenses; [ lgpl21 gpl3 ];
-
-      nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
-      propagatedBuildInputs = [
-        qtscript qtsvg qtquickcontrols qtwebkit shared_mime_info
-        krunner kparts knewstuff
-        gpsd
-      ];
-
-      enableParallelBuilding = true;
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/marble-qt" "bin/marble" ];
-  paths = [ unwrapped ];
+mkDerivation {
+  name = "marble";
+  meta.license = with lib.licenses; [ lgpl21 gpl3 ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools perl wrapGAppsHook ];
+  propagatedBuildInputs = [
+    qtscript qtsvg qtquickcontrols qtwebkit shared_mime_info krunner kparts
+    knewstuff gpsd
+  ];
 }
diff --git a/pkgs/applications/kde/okteta.nix b/pkgs/applications/kde/okteta.nix
index 7fb4ffb7693..350630664d9 100644
--- a/pkgs/applications/kde/okteta.nix
+++ b/pkgs/applications/kde/okteta.nix
@@ -1,26 +1,19 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kinit,
   kcmutils, kconfigwidgets, knewstuff, kparts, qca-qt5
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "okteta";
-      meta = {
-        license = with lib.licenses; [ gpl2 ];
-        maintainers = with lib.maintainers; [ peterhoeg ];
-      };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kconfig kinit
-        kcmutils kconfigwidgets knewstuff kparts qca-qt5
-      ];
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/okteta" ];
+mkDerivation {
+  name = "okteta";
+  meta = {
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ peterhoeg ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kconfig kinit
+    kcmutils kconfigwidgets knewstuff kparts qca-qt5
+  ];
 }
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index 3bed7454f42..12983519b26 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -1,31 +1,25 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   djvulibre, ebook_tools, kactivities, karchive, kbookmarks, kcompletion,
   kconfig, kconfigwidgets, kcoreaddons, kdbusaddons, kdegraphics-mobipocket,
   kiconthemes, kjs, khtml, kio, kparts, kpty, kwallet, kwindowsystem, libkexiv2,
   libspectre, poppler, qca-qt5, qtdeclarative, qtsvg, threadweaver
 }:
 
-let
-  unwrapped = mkDerivation {
-    name = "okular";
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [
-      djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig
-      kconfigwidgets kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes
-      kjs khtml kio kparts kpty kwallet kwindowsystem libkexiv2 libspectre poppler
-      qca-qt5 qtdeclarative qtsvg threadweaver
-    ];
-    meta = {
-      platforms = lib.platforms.linux;
-      homepage = "http://www.kde.org";
-      license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
-      maintainers = [ lib.maintainers.ttuegel ];
-    };
+mkDerivation {
+  name = "okular";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    djvulibre ebook_tools kactivities karchive kbookmarks kcompletion kconfig
+    kconfigwidgets kcoreaddons kdbusaddons kdegraphics-mobipocket kiconthemes
+    kjs khtml kio kparts kpty kwallet kwindowsystem libkexiv2 libspectre poppler
+    qca-qt5 qtdeclarative qtsvg threadweaver
+  ];
+  meta = {
+    platforms = lib.platforms.linux;
+    homepage = "http://www.kde.org";
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 bsd3 ];
+    maintainers = [ lib.maintainers.ttuegel ];
   };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/okular" ];
 }
diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix
index a2589f46bba..18a5da2ccca 100644
--- a/pkgs/applications/kde/print-manager.nix
+++ b/pkgs/applications/kde/print-manager.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, extra-cmake-modules,
+  mkDerivation, lib, extra-cmake-modules, wrapGAppsHook,
   cups, kconfig, kconfigwidgets, kdbusaddons, kiconthemes, ki18n, kcmutils, kio,
   knotifications, kwidgetsaddons, kwindowsystem, kitemviews, plasma-framework,
   qtdeclarative
@@ -11,7 +11,7 @@ mkDerivation {
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  nativeBuildInputs = [ extra-cmake-modules ];
+  nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ];
   propagatedBuildInputs = [
     cups kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications
     kwidgetsaddons kitemviews ki18n kio kwindowsystem plasma-framework
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index a0c5ef58c9b..10d98d99b0b 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -1,25 +1,18 @@
 {
-  mkDerivation, lib, kdeWrapper,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kcoreaddons, kdbusaddons, kdeclarative, ki18n, kio, kipi-plugins,
   knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi,
   xcb-util-cursor
 }:
 
-let
-  unwrapped =
-    mkDerivation {
-      name = "spectacle";
-      meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
-      nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-      propagatedBuildInputs = [
-        kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
-        kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor
-      ];
-    };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/spectacle" ];
-  paths = [ kipi-plugins ];
+mkDerivation {
+  name = "spectacle";
+  meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [
+    kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
+    kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi xcb-util-cursor
+  ];
+  propagatedUserEnvPkgs = [ kipi-plugins ];
 }
diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix
index 05d1ce1a950..22cd14c1952 100644
--- a/pkgs/applications/misc/krename/default.nix
+++ b/pkgs/applications/misc/krename/default.nix
@@ -1,35 +1,30 @@
 {
-  mkDerivation, kdeWrapper, fetchFromGitHub, lib,
-  extra-cmake-modules, kdoctools, kconfig, kinit, kjsembed,
-  taglib, exiv2, podofo
+  mkDerivation, fetchFromGitHub, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
+  kconfig, kinit, kjsembed, taglib, exiv2, podofo
 }:
 
 let
   pname = "krename";
   version = "20170610";
-  unwrapped = mkDerivation rec {
-    name = "${pname}-${version}";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchFromGitHub {
-      owner  = "KDE";
-      repo   = "krename";
-      rev    = "18000edfec52de0b417d575e14eb078b4bd7b2f3";
-      sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j";
-    };
-
-    meta = with lib; {
-      homepage = http://www.krename.net;
-      description = "A powerful batch renamer for KDE";
-      inherit (kconfig.meta) platforms;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
+  src = fetchFromGitHub {
+    owner  = "KDE";
+    repo   = "krename";
+    rev    = "18000edfec52de0b417d575e14eb078b4bd7b2f3";
+    sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j";
+  };
 
-    buildInputs = [ taglib exiv2 podofo ];
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [ kconfig kinit kjsembed ];
+  meta = with lib; {
+    homepage = http://www.krename.net;
+    description = "A powerful batch renamer for KDE";
+    inherit (kconfig.meta) platforms;
+    maintainers = with maintainers; [ peterhoeg ];
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krename" ];
+  buildInputs = [ taglib exiv2 podofo ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kinit kjsembed ];
 }
diff --git a/pkgs/applications/misc/krusader/default.nix b/pkgs/applications/misc/krusader/default.nix
index df557f76e73..7f5dad62d26 100644
--- a/pkgs/applications/misc/krusader/default.nix
+++ b/pkgs/applications/misc/krusader/default.nix
@@ -1,32 +1,27 @@
 {
-  mkDerivation, kdeWrapper, fetchurl, lib,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kinit, kparts
 }:
 
 let
   pname = "krusader";
   version = "2.6.0";
-  unwrapped = mkDerivation rec {
-    name = "krusader-${version}";
+in mkDerivation rec {
+  name = "krusader-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
-      sha256 = "0f9skfvp0hdml8qq6v22z9293ndijd8kwbpdj7wpvgd6mlya8qbh";
-    };
-
-    meta = with lib; {
-      description = "Norton/Total Commander clone for KDE";
-      license = licenses.gpl2;
-      homepage = http://www.krusader.org;
-      maintainers = with maintainers; [ sander ];
-    };
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${name}.tar.xz";
+    sha256 = "0f9skfvp0hdml8qq6v22z9293ndijd8kwbpdj7wpvgd6mlya8qbh";
+  };
 
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [ kconfig kinit kparts ];
+  meta = with lib; {
+    description = "Norton/Total Commander clone for KDE";
+    license = licenses.gpl2;
+    homepage = http://www.krusader.org;
+    maintainers = with maintainers; [ sander ];
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/krusader" ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kinit kparts ];
 }
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index cdde0beb827..1b2cf94d173 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -1,33 +1,26 @@
-{ stdenv, lib, cmake, xorg, plasma-framework, fetchFromGitHub, kdeWrapper }:
+{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub }:
 
-let version = "0.6.0";
+let version = "0.6.0"; in
 
-    unwrapped = stdenv.mkDerivation {
-      name = "latte-dock-${version}";
+mkDerivation {
+  name = "latte-dock-${version}";
 
-      src = fetchFromGitHub {
-        owner = "psifidotos";
-        repo = "Latte-Dock";
-        rev = "v${version}";
-        sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
-      };
+  src = fetchFromGitHub {
+    owner = "psifidotos";
+    repo = "Latte-Dock";
+    rev = "v${version}";
+    sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
+  };
 
-      buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
+  buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
 
-      nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
-      enableParallelBuilding = true;
-
-      meta = with stdenv.lib; {
-        description = "Dock-style app launcher based on Plasma frameworks";
-        homepage = https://github.com/psifidotos/Latte-Dock;
-        license = licenses.gpl2;
-        platforms = platforms.unix;
-        maintainers = [ maintainers.benley ];
-      };
-    };
-
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/latte-dock" ];
+  meta = with lib; {
+    description = "Dock-style app launcher based on Plasma frameworks";
+    homepage = https://github.com/psifidotos/Latte-Dock;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.benley ];
+  };
 }
diff --git a/pkgs/applications/misc/yakuake/default.nix b/pkgs/applications/misc/yakuake/default.nix
index 7df1c7383c7..4a25f88ac75 100644
--- a/pkgs/applications/misc/yakuake/default.nix
+++ b/pkgs/applications/misc/yakuake/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , kdoctools
-, kdeWrapper
+, wrapGAppsHook
 , extra-cmake-modules
 , karchive
 , kcrash
@@ -18,11 +18,10 @@
 }:
 
 let
-  unwrapped = let
-    pname = "yakuake";
-    version = "3.0.3";
-  in mkDerivation rec {
-    name = "${pname}-${version}";
+  pname = "yakuake";
+  version = "3.0.3";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
     src = fetchurl {
       url = "http://download.kde.org/stable/${pname}/${version}/src/${name}.tar.xz";
@@ -42,22 +41,28 @@ let
       kwindowsystem
     ];
 
-    nativeBuildInputs = [
-      extra-cmake-modules kdoctools
-    ];
+  propagatedBuildInputs = [
+    karchive
+    kcrash
+    kdbusaddons
+    ki18n
+    kiconthemes
+    knewstuff
+    knotifications
+    knotifyconfig
+    kparts
+    kwindowsystem
+  ];
 
-    meta = {
-      homepage = https://yakuake.kde.org;
-      description = "Quad-style terminal emulator for KDE";
-      maintainers = with lib.maintainers; [ fridh ];
-    };
-  };
+  propagatedUserEnvPkgs = [ konsole ];
 
+  nativeBuildInputs = [
+    extra-cmake-modules kdoctools wrapGAppsHook
+  ];
 
-in
-kdeWrapper
-{
-  inherit unwrapped;
-  targets = [ "bin/yakuake" ];
-  paths = [ konsole.unwrapped ];
+  meta = {
+    homepage = https://yakuake.kde.org;
+    description = "Quad-style terminal emulator for KDE";
+    maintainers = with lib.maintainers; [ fridh ];
+  };
 }
diff --git a/pkgs/applications/networking/irc/konversation/default.nix b/pkgs/applications/networking/irc/konversation/default.nix
index 740f30874bf..26e5911a85f 100644
--- a/pkgs/applications/networking/irc/konversation/default.nix
+++ b/pkgs/applications/networking/irc/konversation/default.nix
@@ -2,14 +2,14 @@
 , lib
 , fetchurl
 , extra-cmake-modules
+, kdoctools
+, wrapGAppsHook
 , kbookmarks
 , karchive
 , kconfig
 , kconfigwidgets
 , kcoreaddons
 , kdbusaddons
-, kdeWrapper
-, kdoctools
 , kemoticons
 , kglobalaccel
 , ki18n
@@ -28,55 +28,50 @@
 }:
 
 let
-  unwrapped = let
-    pname = "konversation";
-    version = "1.6.2";
-  in mkDerivation rec {
-    name = "${pname}-${version}";
+  pname = "konversation";
+  version = "1.6.2";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-      sha256 = "1798sslwz7a3h1v524ra33p0j5iqvcg0v1insyvb5qp4kv11slmn";
-    };
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "1798sslwz7a3h1v524ra33p0j5iqvcg0v1insyvb5qp4kv11slmn";
+  };
 
-    buildInputs = [
-      kbookmarks
-      karchive
-      kconfig
-      kconfigwidgets
-      kcoreaddons
-      kdbusaddons
-      kdoctools
-      kemoticons
-      kglobalaccel
-      ki18n
-      kiconthemes
-      kidletime
-      kitemviews
-      knotifications
-      knotifyconfig
-      kio
-      kparts
-      kwallet
-      solid
-      sonnet
-      phonon
-    ];
+  buildInputs = [
+    kbookmarks
+    karchive
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kdbusaddons
+    kdoctools
+    kemoticons
+    kglobalaccel
+    ki18n
+    kiconthemes
+    kidletime
+    kitemviews
+    knotifications
+    knotifyconfig
+    kio
+    kparts
+    kwallet
+    solid
+    sonnet
+    phonon
+  ];
 
-    nativeBuildInputs = [
-      extra-cmake-modules
-      kdoctools
-    ];
+  nativeBuildInputs = [
+    extra-cmake-modules
+    kdoctools
+    wrapGAppsHook
+  ];
 
-    meta = {
-      description = "Integrated IRC client for KDE";
-      license = with lib.licenses; [ gpl2 ];
-      maintainers = with lib.maintainers; [ fridh ];
-      homepage = https://konversation.kde.org;
-    };
+  meta = {
+    description = "Integrated IRC client for KDE";
+    license = with lib.licenses; [ gpl2 ];
+    maintainers = with lib.maintainers; [ fridh ];
+    homepage = https://konversation.kde.org;
   };
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/konversation" ];
 }
-
diff --git a/pkgs/build-support/kde/wrapper.nix b/pkgs/build-support/kde/wrapper.nix
deleted file mode 100644
index 4442b111d79..00000000000
--- a/pkgs/build-support/kde/wrapper.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ stdenv, lib, makeWrapper, buildEnv, gtk3, dconf }:
-
-packages:
-
-let
-  packages_ = if builtins.isList packages then packages else [packages];
-
-  unwrapped = lib.concatMap (p: if builtins.isList p.unwrapped then p.unwrapped else [p.unwrapped]) packages_;
-  targets = lib.concatMap (p: p.targets) packages_;
-  paths = lib.concatMap (p: p.paths or []) packages_;
-
-  name =
-    if builtins.length unwrapped == 1
-    then (lib.head unwrapped).name
-    else "kde-application";
-  meta =
-    if builtins.length unwrapped == 1
-    then (lib.head unwrapped).meta
-    else {};
-
-  env = buildEnv {
-    inherit name meta;
-    paths = builtins.map lib.getBin (unwrapped ++ paths);
-    pathsToLink = [ "/bin" "/share" "/lib/qt5" "/etc/xdg" ];
-  };
-in
-
-stdenv.mkDerivation {
-  inherit name meta;
-  preferLocalBuild = true;
-
-  inherit unwrapped env targets;
-
-  passthru = {
-    inherit targets paths;
-    unwrapped = if builtins.length unwrapped == 1 then lib.head unwrapped else unwrapped;
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildCommand = ''
-    for t in $targets; do
-        good=""
-        for drv in $unwrapped; do
-            if [ -a "$drv/$t" ]; then
-                makeWrapper "$drv/$t" "$out/$t" \
-                    --argv0 '"$0"' \
-                    --suffix PATH : "$env/bin" \
-                    --prefix XDG_CONFIG_DIRS : "$env/etc/xdg" \
-                    --prefix XDG_DATA_DIRS : "$env/share:${gtk3}/share/gsettings-schemas/${gtk3.name}" \
-                    --prefix QML_IMPORT_PATH : "$env/lib/qt5/imports" \
-                    --prefix QML2_IMPORT_PATH : "$env/lib/qt5/qml" \
-                    --prefix QT_PLUGIN_PATH : "$env/lib/qt5/plugins" \
-                    --prefix GIO_EXTRA_MODULES : "${dconf.lib}/lib/gio/modules"
-                good="1"
-                break
-            fi
-        done
-        if [ -z "$good" ]; then
-            echo "file or directory not found in derivations: $t"
-            exit 1
-        fi
-    done
-
-    mkdir -p "$out/nix-support"
-    echo "$unwrapped" > "$out/nix-support/propagated-user-env-packages"
-  '';
-}
diff --git a/pkgs/desktops/plasma-5/oxygen.nix b/pkgs/desktops/plasma-5/oxygen.nix
index c50fd8b0514..483d987686a 100644
--- a/pkgs/desktops/plasma-5/oxygen.nix
+++ b/pkgs/desktops/plasma-5/oxygen.nix
@@ -1,21 +1,15 @@
 {
-  mkDerivation, kdeWrapper,
+  mkDerivation,
   extra-cmake-modules,
   frameworkintegration, kcmutils, kcompletion, kconfig, kdecoration, kguiaddons,
   ki18n, kwidgetsaddons, kservice, kwayland, kwindowsystem, qtx11extras
 }:
 
-let
-  unwrapped = mkDerivation {
-    name = "oxygen";
-    nativeBuildInputs = [ extra-cmake-modules ];
-    propagatedBuildInputs = [
-      frameworkintegration kcmutils kcompletion kconfig kdecoration kguiaddons
-      ki18n kservice kwayland kwidgetsaddons kwindowsystem qtx11extras
-    ];
-  };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/oxygen-demo5" "bin/oxygen-settings5" ];
+mkDerivation {
+  name = "oxygen";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [
+    frameworkintegration kcmutils kcompletion kconfig kdecoration kguiaddons
+    ki18n kservice kwayland kwidgetsaddons kwindowsystem qtx11extras
+  ];
 }
diff --git a/pkgs/tools/misc/kronometer/default.nix b/pkgs/tools/misc/kronometer/default.nix
index 088d01b882d..6db3278fade 100644
--- a/pkgs/tools/misc/kronometer/default.nix
+++ b/pkgs/tools/misc/kronometer/default.nix
@@ -1,29 +1,25 @@
 {
-  mkDerivation, kdeWrapper, fetchurl, lib,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   kconfig, kinit
 }:
 
 let
   pname = "kronometer";
   version = "2.1.3";
-  unwrapped = mkDerivation rec {
-    name = "${pname}-${version}";
+in
+mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-      sha256 = "1z06gvaacm3d3a9smlmgg2vf0jdab5kqxx24r6v7iprqzgdpsn4i";
-    };
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "1z06gvaacm3d3a9smlmgg2vf0jdab5kqxx24r6v7iprqzgdpsn4i";
+  };
 
-    meta = with lib; {
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    propagatedBuildInputs = [ kconfig kinit ];
+  meta = with lib; {
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
   };
-in
-kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kronometer" ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  propagatedBuildInputs = [ kconfig kinit ];
 }
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index ffee286f57f..52183a3fff3 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,31 +1,26 @@
-{ mkDerivation, kdeWrapper, fetchurl, lib
-, extra-cmake-modules, kdoctools
+{ mkDerivation, fetchurl, lib
+, extra-cmake-modules, kdoctools, wrapGAppsHook
 , kconfig, kinit, kpmcore
 , eject, libatasmart }:
 
 let
   pname = "partitionmanager";
-  unwrapped = mkDerivation rec {
-    name = "${pname}-${version}";
-    version = "3.0.1";
+in mkDerivation rec {
+  name = "${pname}-${version}";
+  version = "3.0.1";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-      sha256 = "08sb9xa7dvvgha3k2xm1srl339przxpxd2y5bh1lnx6k1x7dk410";
-    };
-
-    meta = with lib; {
-      description = "KDE Partition Manager";
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-    # refer to kpmcore for the use of eject
-    buildInputs = [ eject libatasmart ];
-    propagatedBuildInputs = [ kconfig kinit kpmcore ];
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "08sb9xa7dvvgha3k2xm1srl339przxpxd2y5bh1lnx6k1x7dk410";
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/partitionmanager" ];
+  meta = with lib; {
+    description = "KDE Partition Manager";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  # refer to kpmcore for the use of eject
+  buildInputs = [ eject libatasmart ];
+  propagatedBuildInputs = [ kconfig kinit kpmcore ];
 }
diff --git a/pkgs/tools/misc/peruse/default.nix b/pkgs/tools/misc/peruse/default.nix
index 5b5cbbf59cf..cd872fd966e 100644
--- a/pkgs/tools/misc/peruse/default.nix
+++ b/pkgs/tools/misc/peruse/default.nix
@@ -1,6 +1,6 @@
 {
-  mkDerivation, kdeWrapper, fetchFromGitHub, fetchurl, lib,
-  extra-cmake-modules, kdoctools,
+  mkDerivation, fetchFromGitHub, fetchurl, lib,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
   baloo, kconfig, kfilemetadata, kinit, kirigami, knewstuff, plasma-framework
 }:
 
@@ -13,33 +13,28 @@ let
     rev    = "d1be8c43a82a4320306c8e835a86fdb7b2574ca7";
     sha256 = "03ds5da69zipa25rsp76l6xqivrh3wcgygwyqa5x2rgcz3rjnlpr";
   };
-  unwrapped = mkDerivation rec {
-    name = "${pname}-${version}";
+in mkDerivation rec {
+  name = "${pname}-${version}";
 
-    src = fetchurl {
-      url = "mirror://kde/stable/${pname}/${name}.tar.xz";
-      sha256 = "1ik2627xynkichsq9x28rkczqn3l3p06q6vw5jdafdh3hisccmjq";
-    };
-
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${name}.tar.xz";
+    sha256 = "1ik2627xynkichsq9x28rkczqn3l3p06q6vw5jdafdh3hisccmjq";
+  };
 
-    propagatedBuildInputs = [ baloo kconfig kfilemetadata kinit kirigami knewstuff plasma-framework ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
 
-    pathsToLink = [ "/etc/xdg/peruse.knsrc"];
+  propagatedBuildInputs = [ baloo kconfig kfilemetadata kinit kirigami knewstuff plasma-framework ];
 
-    preConfigure = ''
-      rm -rf src/qtquick/karchive-rar/external/unarr
-      ln -s ${unarr} src/qtquick/karchive-rar/external/unarr
-    '';
+  pathsToLink = [ "/etc/xdg/peruse.knsrc"];
 
-    meta = with lib; {
-      license = licenses.gpl2;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
+  preConfigure = ''
+    rm -rf src/qtquick/karchive-rar/external/unarr
+    ln -s ${unarr} src/qtquick/karchive-rar/external/unarr
+  '';
 
+  meta = with lib; {
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/peruse" "bin/perusecreator" ];
 }
diff --git a/pkgs/tools/security/kwalletcli/default.nix b/pkgs/tools/security/kwalletcli/default.nix
index c6217024f1b..c655e9aecf8 100644
--- a/pkgs/tools/security/kwalletcli/default.nix
+++ b/pkgs/tools/security/kwalletcli/default.nix
@@ -1,5 +1,5 @@
 {
-  kdeDerivation, kdeWrapper, fetchurl, lib,
+  mkDerivation, fetchurl, lib,
   pkgconfig,
   kcoreaddons, ki18n, kwallet,
   mksh
@@ -8,48 +8,42 @@
 let
   pname = "kwalletcli";
   version = "3.00";
+in
+mkDerivation rec {
+  name = "${pname}-${version}";
 
-  unwrapped = kdeDerivation rec {
-    name = "${pname}-${version}";
-
-    src = fetchurl {
-      url = "https://www.mirbsd.org/MirOS/dist/hosted/kwalletcli/${name}.tar.gz";
-      sha256 = "1q87nm7pkmgvkrml6hgbmv0ddx3871w7x86gn90sjc3vw59qfh98";
-    };
-
-    postPatch = ''
-      substituteInPlace GNUmakefile \
-        --replace '-I/usr/include/KF5/KCoreAddons' '-I${kcoreaddons.dev}/include/KF5/KCoreAddons' \
-        --replace '-I/usr/include/KF5/KI18n'       '-I${ki18n.dev}/include/KF5/KI18n' \
-        --replace '-I/usr/include/KF5/KWallet'     '-I${kwallet.dev}/include/KF5/KWallet' \
-        --replace /usr/bin                         $out/bin \
-        --replace /usr/share/man                   $out/share/man
-    '';
-
-    makeFlags = [ "KDE_VER=5" ];
-
-    # we need this when building against qt 5.8+
-    NIX_CFLAGS_COMPILE = [ "-std=c++11" ];
-
-    nativeBuildInputs = [ pkgconfig ];
-    # if using just kwallet, cmake will be added as a buildInput and fail the build
-    propagatedBuildInputs = [ kcoreaddons ki18n (lib.getLib kwallet) ];
-
-    preInstall = ''
-      mkdir -p $out/bin $out/share/man/man1
-    '';
-
-    meta = with lib; {
-      description = "Command-Line Interface to the KDE Wallet";
-      homepage = http://www.mirbsd.org/kwalletcli.htm;
-      license = licenses.miros;
-      maintainers = with maintainers; [ peterhoeg ];
-    };
+  src = fetchurl {
+    url = "https://www.mirbsd.org/MirOS/dist/hosted/kwalletcli/${name}.tar.gz";
+    sha256 = "1q87nm7pkmgvkrml6hgbmv0ddx3871w7x86gn90sjc3vw59qfh98";
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = map (b: "bin/" + b)
-    [ "kwalletaskpass" "kwalletcli" "kwalletcli_getpin" "pinentry-kwallet" ];
-  paths = [ mksh ];
+  postPatch = ''
+    substituteInPlace GNUmakefile \
+      --replace '-I/usr/include/KF5/KCoreAddons' '-I${kcoreaddons.dev}/include/KF5/KCoreAddons' \
+      --replace '-I/usr/include/KF5/KI18n'       '-I${ki18n.dev}/include/KF5/KI18n' \
+      --replace '-I/usr/include/KF5/KWallet'     '-I${kwallet.dev}/include/KF5/KWallet' \
+      --replace /usr/bin                         $out/bin \
+      --replace /usr/share/man                   $out/share/man
+  '';
+
+  makeFlags = [ "KDE_VER=5" ];
+
+  # we need this when building against qt 5.8+
+  NIX_CFLAGS_COMPILE = [ "-std=c++11" ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  # if using just kwallet, cmake will be added as a buildInput and fail the build
+  propagatedBuildInputs = [ kcoreaddons ki18n (lib.getLib kwallet) ];
+  propagatedUserEnvPkgs = [ mksh ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share/man/man1
+  '';
+
+  meta = with lib; {
+    description = "Command-Line Interface to the KDE Wallet";
+    homepage = http://www.mirbsd.org/kwalletcli.htm;
+    license = licenses.miros;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
 }
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index 3263fe09f6f..e1a2f157085 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -1,49 +1,44 @@
 {
-  mkDerivation, lib, kdeWrapper, fetchgit, fetchpatch,
-  extra-cmake-modules, kdoctools, kconfig, kinit, kparts
+  mkDerivation, lib, fetchgit, fetchpatch,
+  extra-cmake-modules, kdoctools, wrapGAppsHook,
+  kconfig, kinit, kparts
 }:
 
-let
-  unwrapped = mkDerivation rec {
-    name = "kdiff3-${version}";
-    version = "1.7.0-2017-02-19";
-
-    src = fetchgit {
-      # gitlab is outdated
-      url = https://anongit.kde.org/scratch/thomasfischer/kdiff3.git;
-      sha256 = "0znlk9m844a6qsskbd898w4yk48dkg5bkqlkd5abvyrk1jipzyy8";
-      rev = "0d2ac328164e3cbe2db35875d3df3a86187ae84f";
-    };
-
-    setSourceRoot = ''sourceRoot="$(echo */kdiff3/)"'';
-
-    patches = [
-      (fetchpatch {
-        name = "git-mergetool.diff"; # see https://gitlab.com/tfischer/kdiff3/merge_requests/2
-        url = "https://gitlab.com/vcunat/kdiff3/commit/6106126216.patch";
-        sha256 = "16xqc24y8bg8gzkdbwapiwi68rzqnkpz4hgn586mi01ngig2fd7y";
-      })
-    ];
-    patchFlags = "-p 2";
-
-    postPatch = ''
-      sed -re "s/(p\\[[^]]+] *== *)('([^']|\\\\')+')/\\1QChar(\\2)/g" -i src/diff.cpp
-    '';
-
-    nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-
-    propagatedBuildInputs = [ kconfig kinit kparts ];
-
-    meta = with lib; {
-      homepage = http://kdiff3.sourceforge.net/;
-      license = licenses.gpl2Plus;
-      description = "Compares and merges 2 or 3 files or directories";
-      maintainers = with maintainers; [ viric peterhoeg ];
-      platforms = with platforms; linux;
-    };
+mkDerivation rec {
+  name = "kdiff3-${version}";
+  version = "1.7.0-2017-02-19";
+
+  src = fetchgit {
+    # gitlab is outdated
+    url = https://anongit.kde.org/scratch/thomasfischer/kdiff3.git;
+    sha256 = "0znlk9m844a6qsskbd898w4yk48dkg5bkqlkd5abvyrk1jipzyy8";
+    rev = "0d2ac328164e3cbe2db35875d3df3a86187ae84f";
   };
 
-in kdeWrapper {
-  inherit unwrapped;
-  targets = [ "bin/kdiff3" ];
+  setSourceRoot = ''sourceRoot="$(echo */kdiff3/)"'';
+
+  patches = [
+    (fetchpatch {
+      name = "git-mergetool.diff"; # see https://gitlab.com/tfischer/kdiff3/merge_requests/2
+      url = "https://gitlab.com/vcunat/kdiff3/commit/6106126216.patch";
+      sha256 = "16xqc24y8bg8gzkdbwapiwi68rzqnkpz4hgn586mi01ngig2fd7y";
+    })
+  ];
+  patchFlags = "-p 2";
+
+  postPatch = ''
+    sed -re "s/(p\\[[^]]+] *== *)('([^']|\\\\')+')/\\1QChar(\\2)/g" -i src/diff.cpp
+  '';
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+
+  propagatedBuildInputs = [ kconfig kinit kparts ];
+
+  meta = with lib; {
+    homepage = http://kdiff3.sourceforge.net/;
+    license = licenses.gpl2Plus;
+    description = "Compares and merges 2 or 3 files or directories";
+    maintainers = with maintainers; [ viric peterhoeg ];
+    platforms = with platforms; linux;
+  };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d730991ffdf..ec153fd4666 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -292,10 +292,6 @@ with pkgs;
       inherit kernel rootModules allowMissing;
     };
 
-  kdeWrapper = callPackage ../build-support/kde/wrapper.nix {
-    inherit (gnome3) dconf;
-  };
-
   nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit (pkgs) lib writeText; inherit (emacsPackagesNg) inherit-local; };
 
   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;