summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authoradisbladis <adis@blad.is>2018-02-08 14:03:33 +0800
committeradisbladis <adis@blad.is>2018-02-14 17:24:20 +0800
commit1de98e85681e7d1028fe866fa220c05ce1ed842f (patch)
tree3cea8562ce858eade26d209827d1143f577dea16 /pkgs/desktops
parent78c71e81eb9d479854fb57db5c44b40680b745d0 (diff)
downloadnixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar.gz
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar.bz2
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar.lz
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar.xz
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.tar.zst
nixlib-1de98e85681e7d1028fe866fa220c05ce1ed842f.zip
plasma: 5.11.5 -> 5.12.1
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/plasma-5/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix5
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix20
-rw-r--r--pkgs/desktops/plasma-5/kwin/no-setcap-install.patch24
-rw-r--r--pkgs/desktops/plasma-5/kwin/series1
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix3
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch163
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix352
-rw-r--r--pkgs/desktops/plasma-5/systemsettings.nix4
10 files changed, 298 insertions, 280 deletions
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 81f42a2adbe0..baa4b028d013 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -26,7 +26,7 @@ existing packages here and modify it as necessary.
 
 {
   libsForQt5, lib, fetchurl,
-  gconf,
+  gconf, gsettings_desktop_schemas,
   debug ? false,
 }:
 
@@ -105,7 +105,7 @@ let
       breeze-plymouth = callPackage ./breeze-plymouth {};
       kactivitymanagerd = callPackage ./kactivitymanagerd.nix {};
       kde-cli-tools = callPackage ./kde-cli-tools.nix {};
-      kde-gtk-config = callPackage ./kde-gtk-config {};
+      kde-gtk-config = callPackage ./kde-gtk-config { inherit gsettings_desktop_schemas; };
       kdecoration = callPackage ./kdecoration.nix {};
       kdeplasma-addons = callPackage ./kdeplasma-addons.nix {};
       kgamma5 = callPackage ./kgamma5.nix {};
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 921441c02922..e42fe3db85cf 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.11.5/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.12.1/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 38bab58c829e..f792f3b939f4 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -2,7 +2,7 @@
   mkDerivation,
   extra-cmake-modules,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
-  knewstuff
+  knewstuff, gsettings_desktop_schemas
 }:
 
 mkDerivation {
@@ -10,11 +10,12 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
-    knewstuff
+    knewstuff gsettings_desktop_schemas
   ];
   patches = [ ./0001-follow-symlinks.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
+    "-DGLIB_SCHEMAS_DIR=${gsettings_desktop_schemas.out}/"
   ];
 }
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index 8b8a5fe72ea2..87a25885b40f 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -11,7 +11,7 @@
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
   kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework,
+  plasma-framework, qtsensors, libcap
 }:
 
 mkDerivation {
@@ -21,22 +21,22 @@ mkDerivation {
     epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
     xwayland
 
-    qtdeclarative qtmultimedia qtscript qtx11extras
+    qtdeclarative qtmultimedia qtscript qtx11extras qtsensors
 
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
     kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
     kwayland kwidgetsaddons kwindowsystem kxmlgui plasma-framework
+    libcap
   ];
   outputs = [ "bin" "dev" "out" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series)
-    ++ [(fetchpatch {
-        name = "cmake-3.10.diff";
-        # included upstream for kwin >= 5.11.95
-        url = "https://github.com/KDE/kwin/commit/cd544890ced4192.diff";
-        sha256 = "0z5nbcg712v10mskb7r9v0jcx5h8q4ixb7fjbb0kicmzsc266yd5";
-    })]
-    ;
+  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series) ++ [
+    # This patch should be removed in 5.12.2
+    (fetchpatch {
+      url = "https://github.com/KDE/kwin/commit/6e5f5d92daab4c60f7bf241d90a91b3bea27acfd.patch";
+      sha256 = "1yq9wjvch46z7qx051s0ws0gyqbqhkvx7xl4pymd97vz8v6gnx4x";
+    })
+  ];
   CXXFLAGS = [
     ''-DNIXPKGS_XWAYLAND=\"${lib.getBin xwayland}/bin/Xwayland\"''
   ];
diff --git a/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch b/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch
new file mode 100644
index 000000000000..80aacacc6ca0
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwin/no-setcap-install.patch
@@ -0,0 +1,24 @@
+Dont set capabilities on kwin_wayland executable at build time
+
+This is handled by security.wrappers on NixOS
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48cbcdbfe..93b410ed8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -674,15 +674,6 @@ if (HAVE_LIBCAP)
+ endif()
+
+ install(TARGETS kwin_wayland         ${INSTALL_TARGETS_DEFAULT_ARGS} )
+-if (HAVE_LIBCAP)
+-    install(
+-    CODE "execute_process(
+-            COMMAND
+-                ${SETCAP_EXECUTABLE}
+-                CAP_SYS_NICE=+ep
+-                \$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/kwin_wayland)"
+-    )
+-endif()
+
+ add_subdirectory(platformsupport)
+ add_subdirectory(plugins)
diff --git a/pkgs/desktops/plasma-5/kwin/series b/pkgs/desktops/plasma-5/kwin/series
index 9dbc88f49975..8efb74eabd67 100644
--- a/pkgs/desktops/plasma-5/kwin/series
+++ b/pkgs/desktops/plasma-5/kwin/series
@@ -1,2 +1,3 @@
 follow-symlinks.patch
 xwayland.patch
+no-setcap-install.patch
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 318d416d8859..32bd5f3a9f28 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -12,7 +12,7 @@
   kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
   kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
   kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
-  plasma-workspace,
+  plasma-workspace, xf86inputlibinput
 }:
 
 mkDerivation rec {
@@ -41,6 +41,7 @@ mkDerivation rec {
   cmakeFlags = [
     "-DEvdev_INCLUDE_DIRS=${lib.getDev xf86inputevdev}/include/xorg"
     "-DSynaptics_INCLUDE_DIRS=${lib.getDev xf86inputsynaptics}/include/xorg"
+    "-DXORGLIBINPUT_INCLUDE_DIRS=${lib.getDev xf86inputlibinput}/include/xorg"
   ];
   postInstall = ''
     # Display ~/Desktop contents on the desktop by default.
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
index d951c03b5d3d..e012537e4028 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/plasma-workspace.patch
@@ -1,5 +1,5 @@
 diff --git a/applets/batterymonitor/package/contents/ui/BatteryItem.qml b/applets/batterymonitor/package/contents/ui/BatteryItem.qml
-index 7e2d9758..40a5797b 100644
+index 7e2d975..40a5797 100644
 --- a/applets/batterymonitor/package/contents/ui/BatteryItem.qml
 +++ b/applets/batterymonitor/package/contents/ui/BatteryItem.qml
 @@ -26,7 +26,7 @@ import org.kde.plasma.components 2.0 as PlasmaComponents
@@ -12,7 +12,7 @@ index 7e2d9758..40a5797b 100644
  Item {
      id: batteryItem
 diff --git a/applets/batterymonitor/package/contents/ui/batterymonitor.qml b/applets/batterymonitor/package/contents/ui/batterymonitor.qml
-index ae6d5919..c2f99c86 100644
+index 50deee5..45b6b37 100644
 --- a/applets/batterymonitor/package/contents/ui/batterymonitor.qml
 +++ b/applets/batterymonitor/package/contents/ui/batterymonitor.qml
 @@ -25,7 +25,7 @@ import org.kde.plasma.plasmoid 2.0
@@ -25,7 +25,7 @@ index ae6d5919..c2f99c86 100644
  Item {
      id: batterymonitor
 diff --git a/applets/lock_logout/contents/ui/lockout.qml b/applets/lock_logout/contents/ui/lockout.qml
-index 80e7e53b..0083cf01 100644
+index 80e7e53..0083cf0 100644
 --- a/applets/lock_logout/contents/ui/lockout.qml
 +++ b/applets/lock_logout/contents/ui/lockout.qml
 @@ -23,7 +23,7 @@ import org.kde.plasma.plasmoid 2.0
@@ -38,7 +38,7 @@ index 80e7e53b..0083cf01 100644
  Flow {
      id: lockout
 diff --git a/applets/notifications/package/contents/ui/main.qml b/applets/notifications/package/contents/ui/main.qml
-index acdda88f..989de8ab 100644
+index cb15cfa..a6976ba 100644
 --- a/applets/notifications/package/contents/ui/main.qml
 +++ b/applets/notifications/package/contents/ui/main.qml
 @@ -28,7 +28,7 @@ import org.kde.plasma.extras 2.0 as PlasmaExtras
@@ -51,7 +51,7 @@ index acdda88f..989de8ab 100644
  MouseEventListener {
      id: notificationsApplet
 diff --git a/krunner/dbus/org.kde.krunner.service.in b/krunner/dbus/org.kde.krunner.service.in
-index 85715214..294eab08 100644
+index 8571521..294eab0 100644
 --- a/krunner/dbus/org.kde.krunner.service.in
 +++ b/krunner/dbus/org.kde.krunner.service.in
 @@ -1,4 +1,4 @@
@@ -61,7 +61,7 @@ index 85715214..294eab08 100644
 +Exec=@CMAKE_INSTALL_FULL_BINDIR@/krunner
  
 diff --git a/kuiserver/org.kde.kuiserver.service.in b/kuiserver/org.kde.kuiserver.service.in
-index 7a86d07f..5b3030cc 100644
+index 7a86d07..5b3030c 100644
 --- a/kuiserver/org.kde.kuiserver.service.in
 +++ b/kuiserver/org.kde.kuiserver.service.in
 @@ -1,3 +1,3 @@
@@ -70,7 +70,7 @@ index 7a86d07f..5b3030cc 100644
 -Exec=@CMAKE_INSTALL_PREFIX@/bin/kuiserver5
 +Exec=@CMAKE_INSTALL_FULL_BINDIR@/kuiserver5
 diff --git a/startkde/CMakeLists.txt b/startkde/CMakeLists.txt
-index fe29f57a..247db953 100644
+index fe29f57..247db95 100644
 --- a/startkde/CMakeLists.txt
 +++ b/startkde/CMakeLists.txt
 @@ -3,11 +3,6 @@ add_subdirectory(kstartupconfig)
@@ -86,7 +86,7 @@ index fe29f57a..247db953 100644
  configure_file(startplasmacompositor.cmake ${CMAKE_CURRENT_BINARY_DIR}/startplasmacompositor  @ONLY)
  configure_file(startplasma.cmake ${CMAKE_CURRENT_BINARY_DIR}/startplasma  @ONLY)
 diff --git a/startkde/kstartupconfig/kstartupconfig.cpp b/startkde/kstartupconfig/kstartupconfig.cpp
-index c9927855..bd506ce2 100644
+index c992785..bd506ce 100644
 --- a/startkde/kstartupconfig/kstartupconfig.cpp
 +++ b/startkde/kstartupconfig/kstartupconfig.cpp
 @@ -147,5 +147,5 @@ int main()
@@ -97,7 +97,7 @@ index c9927855..bd506ce2 100644
 +    return system( NIXPKGS_KDOSTARTUPCONFIG5 );
      }
 diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake
-index e9fa0bee..79e50a96 100644
+index b3117b4..e70110e 100644
 --- a/startkde/startkde.cmake
 +++ b/startkde/startkde.cmake
 @@ -1,22 +1,31 @@
@@ -142,11 +142,10 @@ index e9fa0bee..79e50a96 100644
  fi
  
  # Boot sequence:
-@@ -33,59 +42,132 @@ fi
+@@ -33,61 +42,133 @@ fi
  #
  # * Then ksmserver is started which takes control of the rest of the startup sequence
  
--# We need to create config folder so we can write startupconfigkeys
 -if [  ${XDG_CONFIG_HOME} ]; then
 -  configDir=$XDG_CONFIG_HOME;
 -else
@@ -174,7 +173,9 @@ index e9fa0bee..79e50a96 100644
 +if [ -e $XDG_CONFIG_HOME/Trolltech.conf ]; then
 +    @NIXPKGS_SED@ -e '/nix\\store\|nix\/store/ d' -i $XDG_CONFIG_HOME/Trolltech.conf
  fi
+ sysConfigDirs=${XDG_CONFIG_DIRS:-/etc/xdg}
  
+-# We need to create config folder so we can write startupconfigkeys
 -mkdir -p $configDir
 +@NIXPKGS_KBUILDSYCOCA5@
 +
@@ -297,13 +298,14 @@ index e9fa0bee..79e50a96 100644
      exit 1
  fi
 -[ -r $configDir/startupconfig ] && . $configDir/startupconfig
+-
 +if [ -r "$XDG_CONFIG_HOME/startupconfig" ]; then
 +    . "$XDG_CONFIG_HOME/startupconfig"
 +fi
  
- if [ "$kdeglobals_kscreen_screenscalefactors" ]; then
-     export QT_SCREEN_SCALE_FACTORS="$kdeglobals_kscreen_screenscalefactors"
-@@ -94,26 +176,33 @@ fi
+ #Do not sync any of this section with the wayland versions as there scale factors are
+ #sent properly over wl_output
+@@ -99,26 +180,33 @@ fi
  #otherwise apps that manually opt in for high DPI get auto scaled by the developer AND manually scaled by us
  export QT_AUTO_SCREEN_SCALE_FACTOR=0
  
@@ -350,7 +352,7 @@ index e9fa0bee..79e50a96 100644
  Xft.dpi: $kcmfonts_general_forcefontdpi
  EOF
  fi
-@@ -122,11 +211,11 @@ dl=$DESKTOP_LOCKED
+@@ -127,11 +215,11 @@ dl=$DESKTOP_LOCKED
  unset DESKTOP_LOCKED # Don't want it in the environment
  
  ksplash_pid=
@@ -364,14 +366,13 @@ index e9fa0bee..79e50a96 100644
        ;;
      None)
        ;;
-@@ -135,71 +224,6 @@ if test -z "$dl"; then
+@@ -140,69 +228,6 @@ if test -z "$dl"; then
    esac
  fi
  
 -# Source scripts found in <config locations>/plasma-workspace/env/*.sh
 -# (where <config locations> correspond to the system and user's configuration
--# directories, as identified by Qt's qtpaths,  e.g.  $HOME/.config
--# and /etc/xdg/ on Linux)
+-# directory.
 -#
 -# This is where you can define environment variables that will be available to
 -# all KDE programs, so this is where you can run agents using e.g. eval `ssh-agent`
@@ -382,11 +383,10 @@ index e9fa0bee..79e50a96 100644
 -# For anything else (that doesn't set env vars, or that needs a window manager),
 -# better use the Autostart folder.
 -
--scriptpath=`qtpaths --locate-dirs GenericConfigLocation plasma-workspace | tr ':' '\n'`
+-scriptpath=`echo "$configDir:$sysConfigDirs" | tr ':' '\n'`
 -
--# Add /env/ to the directory to locate the scripts to be sourced
 -for prefix in `echo $scriptpath`; do
--  for file in "$prefix"/env/*.sh; do
+-  for file in "$prefix"/plasma-workspace/env/*.sh; do
 -    test -r "$file" && . "$file" || true
 -  done
 -done
@@ -436,7 +436,7 @@ index e9fa0bee..79e50a96 100644
  # Set a left cursor instead of the standard X11 "X" cursor, since I've heard
  # from some users that they're confused and don't know what to do. This is
  # especially necessary on slow machines, where starting KDE takes one or two
-@@ -208,28 +232,10 @@ xset fp rehash
+@@ -211,28 +236,10 @@ xset fp rehash
  # If the user has overwritten fonts, the cursor font may be different now
  # so don't move this up.
  #
@@ -466,7 +466,7 @@ index e9fa0bee..79e50a96 100644
  # Mark that full KDE session is running (e.g. Konqueror preloading works only
  # with full KDE running). The KDE_FULL_SESSION property can be detected by
  # any X client connected to the same X session, even if not launched
-@@ -254,44 +260,65 @@ export XDG_DATA_DIRS
+@@ -257,44 +264,65 @@ export XDG_DATA_DIRS
  #
  KDE_FULL_SESSION=true
  export KDE_FULL_SESSION
@@ -545,7 +545,7 @@ index e9fa0bee..79e50a96 100644
  
  # finally, give the session control to the session manager
  # see kdebase/ksmserver for the description of the rest of the startup sequence
-@@ -303,34 +330,37 @@ qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
+@@ -306,34 +334,37 @@ qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit &
  # We only check for 255 which means that the ksmserver process could not be
  # started, any problems thereafter, e.g. ksmserver failing to initialize,
  # will remain undetected.
@@ -594,7 +594,7 @@ index e9fa0bee..79e50a96 100644
              done
              break
          fi
-@@ -339,15 +369,17 @@ fi
+@@ -342,15 +373,17 @@ fi
  
  echo 'startkde: Shutting down...'  1>&2
  # just in case
@@ -617,7 +617,7 @@ index e9fa0bee..79e50a96 100644
  
  echo 'startkde: Done.'  1>&2
 diff --git a/startkde/startplasma.cmake b/startkde/startplasma.cmake
-index 9f875110..2a7a2a70 100644
+index a5d09fa..d42c284 100644
 --- a/startkde/startplasma.cmake
 +++ b/startkde/startplasma.cmake
 @@ -1,6 +1,6 @@
@@ -714,7 +714,7 @@ index 9f875110..2a7a2a70 100644
  # Set a left cursor instead of the standard X11 "X" cursor, since I've heard
  # from some users that they're confused and don't know what to do. This is
  # especially necessary on slow machines, where starting KDE takes one or two
-@@ -100,35 +56,25 @@ xset fp rehash
+@@ -100,22 +56,13 @@ xset fp rehash
  # If the user has overwritten fonts, the cursor font may be different now
  # so don't move this up.
  #
@@ -738,6 +738,10 @@ index 9f875110..2a7a2a70 100644
 +@NIXPKGS_XPROP@ -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true
 +@NIXPKGS_XPROP@ -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5
  
+ # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
+ if which dbus-update-activation-environment >/dev/null 2>/dev/null ; then
+@@ -131,16 +78,15 @@ fi
+ 
  # We set LD_BIND_NOW to increase the efficiency of kdeinit.
  # kdeinit unsets this variable before loading applications.
 -LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup
@@ -755,17 +759,8 @@ index 9f875110..2a7a2a70 100644
  
  # finally, give the session control to the session manager
  # see kdebase/ksmserver for the description of the rest of the startup sequence
-@@ -143,27 +89,26 @@ qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage kinit
- # If the session should be locked from the start (locked autologin),
- # lock now and do the rest of the KDE startup underneath the locker.
- KSMSERVEROPTIONS=" --no-lockscreen"
--kwrapper5 @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS
-+@NIXPKGS_KWRAPPER5@ @CMAKE_INSTALL_FULL_BINDIR@/ksmserver $KDEWM $KSMSERVEROPTIONS
- if test $? -eq 255; then
-   # Startup error
-   echo 'startplasma: Could not start ksmserver. Check your installation.'  1>&2
-   test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
--  xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
+@@ -163,19 +109,19 @@ if test $? -eq 255; then
+   xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
  fi
  
 -wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true`
@@ -791,13 +786,13 @@ index 9f875110..2a7a2a70 100644
              done
              break
          fi
-@@ -172,15 +117,17 @@ fi
+@@ -184,15 +130,17 @@ fi
  
  echo 'startplasma: Shutting down...'  1>&2
  # just in case
 -test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
 +if [ -n "$ksplash_pid" ]; then
-+    kill "$ksplash_pid" 2>/dev/null
++ "$ksplash_pid" 2>/dev/null
 +fi
  
  # Clean up
@@ -814,27 +809,21 @@ index 9f875110..2a7a2a70 100644
  
  echo 'startplasma: Done.'  1>&2
 diff --git a/startkde/startplasmacompositor.cmake b/startkde/startplasmacompositor.cmake
-index 417a87d4..3f62745a 100644
+index 8ac47aa..49970ef 100644
 --- a/startkde/startplasmacompositor.cmake
 +++ b/startkde/startplasmacompositor.cmake
-@@ -1,173 +1,171 @@
+@@ -1,118 +1,165 @@
  #!/bin/sh
  #
 -#  DEFAULT Plasma STARTUP SCRIPT ( @PROJECT_VERSION@ )
 +#  NIXPKGS Plasma STARTUP SCRIPT ( @PROJECT_VERSION@ )
  #
  
--# in case we have been started with full pathname spec without being in PATH
--bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
--if [ -n "$bindir" ]; then
--  qbindir=`qtpaths --binaries-dir`
--  qdbus=$qbindir/qdbus
--  case $PATH in
--    $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
--    *) PATH=$bindir:$PATH; export PATH;;
--  esac
+-# We need to create config folder so we can write startupconfigkeys
+-if [  ${XDG_CONFIG_HOME} ]; then
+-  configDir=$XDG_CONFIG_HOME;
 -else
--  qdbus=qdbus
+-  configDir=${HOME}/.config; #this is the default, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
 +# we have to unset this for Darwin since it will screw up KDE's dynamic-loading
 +unset DYLD_FORCE_FLAT_NAMESPACE
 +
@@ -860,13 +849,8 @@ index 417a87d4..3f62745a 100644
 +# Qt from doing this wackiness in the first place.
 +if [ -e $XDG_CONFIG_HOME/Trolltech.conf ]; then
 +    @NIXPKGS_SED@ -e '/nix\\store\|nix\/store/ d' -i $XDG_CONFIG_HOME/Trolltech.conf
- fi
- 
--# We need to create config folder so we can write startupconfigkeys
--if [  ${XDG_CONFIG_HOME} ]; then
--  configDir=$XDG_CONFIG_HOME;
--else
--  configDir=${HOME}/.config; #this is the default, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
++fi
++
 +@NIXPKGS_KBUILDSYCOCA5@
 +
 +# Set the default GTK 2 theme
@@ -891,7 +875,9 @@ index 417a87d4..3f62745a 100644
 +gtk-button-images=1
 +EOF
  fi
+ sysConfigDirs=${XDG_CONFIG_DIRS:-/etc/xdg}
  
+-# We need to create config folder so we can write startupconfigkeys
 -mkdir -p $configDir
 +# Set the default GTK 3 theme
 +gtk3_settings="$XDG_CONFIG_HOME/gtk-3.0/settings.ini"
@@ -1012,8 +998,8 @@ index 417a87d4..3f62745a 100644
 -    }
  fi
  
--kstartupconfig5
--returncode=$?
+ kstartupconfig5
+ returncode=$?
 -if test $returncode -ne 0; then
 +if ! @CMAKE_INSTALL_FULL_BINDIR@/kstartupconfig5; then
      exit 1
@@ -1047,7 +1033,7 @@ index 417a87d4..3f62745a 100644
 -        XCURSOR_THEME="$kcminputrc_mouse_cursortheme"
 -        export XCURSOR_THEME
 +if [ -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ]; then
-+    kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
++    #kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
 +    if [ $? -eq 10 ]; then
 +        export XCURSOR_THEME=breeze_cursors
 +    elif [ -n "$kcminputrc_mouse_cursortheme" ]; then
@@ -1066,6 +1052,23 @@ index 417a87d4..3f62745a 100644
      export QT_WAYLAND_FORCE_DPI=$kcmfonts_general_forcefontdpiwayland
  else
      export QT_WAYLAND_FORCE_DPI=96
+@@ -120,12 +167,12 @@ fi
+ 
+ # Get a property value from org.freedesktop.locale1
+ queryLocale1() {
+-    qdbus --system org.freedesktop.locale1 /org/freedesktop/locale1 "$1"
++    @NIXPKGS_QDBUS@ --system org.freedesktop.locale1 /org/freedesktop/locale1 "$1"
+ }
+ 
+ # Query whether org.freedesktop.locale1 is available. If it is, try to
+ # set XKB_DEFAULT_{MODEL,LAYOUT,VARIANT,OPTIONS} accordingly.
+-if qdbus --system org.freedesktop.locale1 >/dev/null 2>/dev/null; then
++if @NIXPKGS_QDBUS@ --system org.freedesktop.locale1 >/dev/null 2>/dev/null; then
+     # Do not overwrite existing values. There is no point in setting only some
+     # of them as then they would not match anymore.
+     if [ -z "${XKB_DEFAULT_MODEL}" -a -z "${XKB_DEFAULT_LAYOUT}" -a \
+@@ -141,41 +188,10 @@ if qdbus --system org.freedesktop.locale1 >/dev/null 2>/dev/null; then
+     fi
  fi
  
 -# Source scripts found in <config locations>/plasma-workspace/env/*.sh
@@ -1082,13 +1085,11 @@ index 417a87d4..3f62745a 100644
 -# For anything else (that doesn't set env vars, or that needs a window manager),
 -# better use the Autostart folder.
 -
--# TODO: Use GenericConfigLocation once we depend on Qt 5.4
--scriptpath=`qtpaths --paths ConfigLocation | tr ':' '\n' | sed 's,$,/plasma-workspace,g'`
+-scriptpath=`echo "$configDir:$sysConfigDirs" | tr ':' '\n'`
 -
--# Add /env/ to the directory to locate the scripts to be sourced
 -for prefix in `echo $scriptpath`; do
--  for file in "$prefix"/env/*.sh; do
--    test -r "$file" && . "$file"
+-  for file in "$prefix"/plasma-workspace/env/*.sh; do
+-    test -r "$file" && . "$file" || true
 -  done
 -done
 -
@@ -1104,14 +1105,12 @@ index 417a87d4..3f62745a 100644
 -export XDG_DATA_DIRS
 -
  # Make sure that D-Bus is running
--if $qdbus >/dev/null 2>/dev/null; then
--    : # ok
--else
-+if ! @NIXPKGS_QDBUS@ >/dev/null 2>/dev/null; then
+-if qdbus >/dev/null 2>/dev/null; then
++if @NIXPKGS_QDBUS@ >/dev/null 2>/dev/null; then
+     : # ok
+ else
      echo 'startplasmacompositor: Could not start D-Bus. Can you call qdbus?'  1>&2
-     test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
-     exit 1
-@@ -202,7 +200,7 @@ export KDE_FULL_SESSION
+@@ -212,7 +228,7 @@ export KDE_FULL_SESSION
  KDE_SESSION_VERSION=5
  export KDE_SESSION_VERSION
  
@@ -1120,7 +1119,7 @@ index 417a87d4..3f62745a 100644
  export KDE_SESSION_UID
  
  XDG_CURRENT_DESKTOP=KDE
-@@ -212,26 +210,47 @@ export XDG_CURRENT_DESKTOP
+@@ -222,20 +238,41 @@ export XDG_CURRENT_DESKTOP
  QT_QPA_PLATFORM=wayland
  export QT_QPA_PLATFORM
  
@@ -1148,7 +1147,8 @@ index 417a87d4..3f62745a 100644
 +    done
 +done
 +
- # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
+ # kwin_wayland can possibly also start dbus-activated services which need env variables.
+ # In that case, the update in startplasma might be too late.
 -if which dbus-update-activation-environment >/dev/null 2>/dev/null ; then
 -    dbus-update-activation-environment --systemd --all
 -else
@@ -1171,17 +1171,8 @@ index 417a87d4..3f62745a 100644
  
  echo 'startplasmacompositor: Shutting down...'  1>&2
  
- unset KDE_FULL_SESSION
--xprop -root -remove KDE_FULL_SESSION
-+@NIXPKGS_XPROP@ -root -remove KDE_FULL_SESSION
- unset KDE_SESSION_VERSION
--xprop -root -remove KDE_SESSION_VERSION
-+@NIXPKGS_XPROP@ -root -remove KDE_SESSION_VERSION
- unset KDE_SESSION_UID
- 
- echo 'startplasmacompositor: Done.'  1>&2
 diff --git a/startkde/waitforname/org.kde.plasma.Notifications.service.in b/startkde/waitforname/org.kde.plasma.Notifications.service.in
-index 0a51b84b..f48b5d8a 100644
+index 0a51b84..f48b5d8 100644
 --- a/startkde/waitforname/org.kde.plasma.Notifications.service.in
 +++ b/startkde/waitforname/org.kde.plasma.Notifications.service.in
 @@ -1,3 +1,3 @@
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index ee605bdba8a2..38ffffe3047e 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -3,355 +3,355 @@
 
 {
   bluedevil = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/bluedevil-5.11.5.tar.xz";
-      sha256 = "0xzdf1qrf2nlpvn2hr9zk72hw027i318s9pnzgmqg1lwhdr276h5";
-      name = "bluedevil-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/bluedevil-5.12.1.tar.xz";
+      sha256 = "0qdqbykphala7np333l3a0r94nrd8zg2dh7iqw6k7mc1mxkh92b7";
+      name = "bluedevil-5.12.1.tar.xz";
     };
   };
   breeze = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/breeze-5.11.5.tar.xz";
-      sha256 = "0xxwnhxpkdf4nyc1rvsjrnqsv1cgzs3a88mwfwpvci4snfva8jp1";
-      name = "breeze-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/breeze-5.12.1.tar.xz";
+      sha256 = "0hi3z4jrs6a0sm58726v6v0hvb0v313qihi06mm6fayiijh0s5zs";
+      name = "breeze-5.12.1.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/breeze-grub-5.11.5.tar.xz";
-      sha256 = "1l3dv1acgs6ssydg985d90136p9n4h0xry3xlx12g5wg07i8s89g";
-      name = "breeze-grub-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/breeze-grub-5.12.1.tar.xz";
+      sha256 = "0i7w9i2m9sxywag46dhr22ksw9zb2cjm6vk2019m3kpg9pq8yx68";
+      name = "breeze-grub-5.12.1.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/breeze-gtk-5.11.5.tar.xz";
-      sha256 = "0mkd1gqih5irmabxly2y744sr1iwxy7r7hx68jrd452nbvqvyrqq";
-      name = "breeze-gtk-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/breeze-gtk-5.12.1.tar.xz";
+      sha256 = "0bal2zf2xg32hxbabf4kzlm2lhir9sn67nfzrf9zb0hb0b7ya01d";
+      name = "breeze-gtk-5.12.1.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/breeze-plymouth-5.11.5.tar.xz";
-      sha256 = "0ydfrrsqvzn71j9x1f26771x99yiq59h745k476dcqajj2m0ari3";
-      name = "breeze-plymouth-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/breeze-plymouth-5.12.1.tar.xz";
+      sha256 = "0535igi9ms4dyz25sygkrmg310s90vy3srx5qdrdzfinah5m8qz7";
+      name = "breeze-plymouth-5.12.1.tar.xz";
     };
   };
   discover = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/discover-5.11.5.tar.xz";
-      sha256 = "0yxsp4jimyrsxf72hinqa51ycg4hmfxrxdicm9n8qfz47srcgkml";
-      name = "discover-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/discover-5.12.1.tar.xz";
+      sha256 = "07jdx01qz9339w652ixk0hjb25s1bf4rc5gs872i0hv77vxy161b";
+      name = "discover-5.12.1.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/drkonqi-5.11.5.tar.xz";
-      sha256 = "1kngafr1hdq6r02mpd4bj5lgbgzk2cd10f5zqsvdfgsirz91vfsf";
-      name = "drkonqi-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/drkonqi-5.12.1.tar.xz";
+      sha256 = "056qqhp8jh2v9jrghdb2n2ljq3s4vyrfdfligkvxvviwrd1r3wyk";
+      name = "drkonqi-5.12.1.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kactivitymanagerd-5.11.5.tar.xz";
-      sha256 = "11nnmqpw4kq96912rys2a539yzgncc5vp7b52wgc4is9i5czsr50";
-      name = "kactivitymanagerd-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kactivitymanagerd-5.12.1.tar.xz";
+      sha256 = "0hfkcy27mpick1sfwvw4x6323bsq9ks2ac066560wm5xy6svhmid";
+      name = "kactivitymanagerd-5.12.1.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kde-cli-tools-5.11.5.tar.xz";
-      sha256 = "0d4d360pq6winykjp6lgq77k9yc435d5g71dj7bivkyilqc4cp8c";
-      name = "kde-cli-tools-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kde-cli-tools-5.12.1.tar.xz";
+      sha256 = "0l6bky92j1hpgn4ikfxwrpsrcvx673g8vk2n3lff1cyy4j0ayg6v";
+      name = "kde-cli-tools-5.12.1.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kdecoration-5.11.5.tar.xz";
-      sha256 = "0hl9mqwyfkh1r5nbl46g5axi446fdf7fw09b7v6l3jg9c5xbx89d";
-      name = "kdecoration-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kdecoration-5.12.1.tar.xz";
+      sha256 = "08x87kcgphb1jknyp3fsimgb2al919s039kkhimijmm0n1z16fiy";
+      name = "kdecoration-5.12.1.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kde-gtk-config-5.11.5.tar.xz";
-      sha256 = "1y9ji82qlvp2z00xw0l32zj8asbg85n6azw8ringg2l6376r01l6";
-      name = "kde-gtk-config-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kde-gtk-config-5.12.1.tar.xz";
+      sha256 = "1a10nxivnfnm9634z98r6jgp887vf1zynyp9hi75pw9jbm4zf1kw";
+      name = "kde-gtk-config-5.12.1.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kdeplasma-addons-5.11.5.tar.xz";
-      sha256 = "1vp9r7ia5wriw5srpyq89nqdp82akz3jnh7dcbh2h0gdagw7hb94";
-      name = "kdeplasma-addons-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kdeplasma-addons-5.12.1.tar.xz";
+      sha256 = "123daj7q8jgw6zsq9c0mdd28qf9r20hlbzs71zz48r7736njaw98";
+      name = "kdeplasma-addons-5.12.1.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kgamma5-5.11.5.tar.xz";
-      sha256 = "16vlx51n52j5q1nfsz4ji6bz4x6sfagxzn6q3r6ckj41rkwmp9gg";
-      name = "kgamma5-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kgamma5-5.12.1.tar.xz";
+      sha256 = "0cgkrc4b0x50ih4x0zfvcydnhqryd37d5sqj3p0k3b6p2r9mnqkb";
+      name = "kgamma5-5.12.1.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/khotkeys-5.11.5.tar.xz";
-      sha256 = "051yjqkf5bigz6cz2qbq0lggw9i6ydfaxrvy4xh40mw2c6x3xmvh";
-      name = "khotkeys-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/khotkeys-5.12.1.tar.xz";
+      sha256 = "1acjg51ikp9gdabdjbg6i9znxrfs11md9zhi7rls9b5p06l38ckj";
+      name = "khotkeys-5.12.1.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kinfocenter-5.11.5.tar.xz";
-      sha256 = "0ym7i64k48x8dcln0lajj0379blp3c3a0axfcjibp3ya2xcaqdif";
-      name = "kinfocenter-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kinfocenter-5.12.1.tar.xz";
+      sha256 = "1wb7gag22ssaril3rl5r3y62rszvihrr4y1ph7nmhrg14sifg16k";
+      name = "kinfocenter-5.12.1.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kmenuedit-5.11.5.tar.xz";
-      sha256 = "0wh4hk51k2mz1gqm9brvdy16gp2ap2iz5b6yjiqbkpz6giy88kwc";
-      name = "kmenuedit-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kmenuedit-5.12.1.tar.xz";
+      sha256 = "13liv9qj8h4b17h8864bhxqahjwaz7bbh1gx53mhkbn59g5kh39d";
+      name = "kmenuedit-5.12.1.tar.xz";
     };
   };
   kscreen = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kscreen-5.11.5.tar.xz";
-      sha256 = "0qa23qs8v8hm91190ssdnlg7dyljra7csgykb7d8la30yxa9vzc7";
-      name = "kscreen-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kscreen-5.12.1.tar.xz";
+      sha256 = "18v0gzv4j9w0jyf05ibi5iwmw1wp231q7hi098sps614hz38zmh2";
+      name = "kscreen-5.12.1.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kscreenlocker-5.11.5.tar.xz";
-      sha256 = "0qrby8jxmvmnr1abkry8h5xapdswabj27n35s9l71d9lp9p96naz";
-      name = "kscreenlocker-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kscreenlocker-5.12.1.tar.xz";
+      sha256 = "1s3k51k05g3nhq1c32631ryr754zk40fnrw4zi2x69bvx3mj40hq";
+      name = "kscreenlocker-5.12.1.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/ksshaskpass-5.11.5.tar.xz";
-      sha256 = "08jf6f1i9xn0zsz2j2czgdzcr203wrlj1nlam26dakrphhaj8vm2";
-      name = "ksshaskpass-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/ksshaskpass-5.12.1.tar.xz";
+      sha256 = "1zj7ka6wfisjbx7lbpw7acjdgr590596zgy4al7if4rznva1zsh7";
+      name = "ksshaskpass-5.12.1.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/ksysguard-5.11.5.tar.xz";
-      sha256 = "161bcmsw4bjlsgkr3izfsqbiwambmm3za8mln3m96nf70gpqpa6i";
-      name = "ksysguard-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/ksysguard-5.12.1.tar.xz";
+      sha256 = "1dh84wzn1iyc59yvzqjah16rp05wl6cf3lgiiycza09d9k4m0j5m";
+      name = "ksysguard-5.12.1.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kwallet-pam-5.11.5.tar.xz";
-      sha256 = "0wqnaszvwclz2gn74nmhqmci39525hwvpc3igxzjhdccnkfb5ac4";
-      name = "kwallet-pam-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kwallet-pam-5.12.1.tar.xz";
+      sha256 = "0x7w945ifmdczynyr45xid8ymq7m0djapacb815bgy7xzr3y3glm";
+      name = "kwallet-pam-5.12.1.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kwayland-integration-5.11.5.tar.xz";
-      sha256 = "0xisgzymlhmbngvmv3dkh6a51dqnhcwrjj2480f0yxsmhvknxrps";
-      name = "kwayland-integration-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kwayland-integration-5.12.1.tar.xz";
+      sha256 = "00fncsp9ihg9f9n9a63rnx6n7jfld6bya3wymppwxnzxp1awx8s0";
+      name = "kwayland-integration-5.12.1.tar.xz";
     };
   };
   kwin = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kwin-5.11.5.tar.xz";
-      sha256 = "06bz2vm78i1x0i0ljdqd2a0bnnrfwz9zvlg7r86qlmhkzn2dpc4z";
-      name = "kwin-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kwin-5.12.1.tar.xz";
+      sha256 = "13wdqhyhnnk64bd1vyxk7rm6bkn7z2cpcxigqdyy3iqkkpz16mfy";
+      name = "kwin-5.12.1.tar.xz";
     };
   };
   kwrited = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/kwrited-5.11.5.tar.xz";
-      sha256 = "0sx5v1apambb8w6mndkkp2lvwlqwzbpxxp5d5zsz96lxndjx6sbv";
-      name = "kwrited-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/kwrited-5.12.1.tar.xz";
+      sha256 = "1blbv41mm74bhp1fkdc0f24pk990xr8ppmwnif9g5ygsisw6mwbl";
+      name = "kwrited-5.12.1.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/libkscreen-5.11.5.tar.xz";
-      sha256 = "03cnr7z74j2kjwbg1ddavmj0l8hpxg7bg2ipglirnzvp2ihv1wzg";
-      name = "libkscreen-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/libkscreen-5.12.1.tar.xz";
+      sha256 = "01j9rvhsgn57jqqhznqwpmq6x2jrfrkv9svhch3akp9qz580wzjf";
+      name = "libkscreen-5.12.1.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/libksysguard-5.11.5.tar.xz";
-      sha256 = "0f2py4zkqzpxxf3mqaij0q8ka0v3nschj17dv6rbzzmr5mjv825f";
-      name = "libksysguard-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/libksysguard-5.12.1.tar.xz";
+      sha256 = "0xfbh0fndld6ab12770fj3szfc66zgfzh0al36lif8rvdgyqymfl";
+      name = "libksysguard-5.12.1.tar.xz";
     };
   };
   milou = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/milou-5.11.5.tar.xz";
-      sha256 = "0ja7a668wv67vb3mgsd2nbjdcp0lm7aix5dpc496wr1jy47pxv8a";
-      name = "milou-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/milou-5.12.1.tar.xz";
+      sha256 = "1k6v0lbadvmclw6mpq2xdh3w4scjjhzj6jsgq7v3g27mjf4pdjc2";
+      name = "milou-5.12.1.tar.xz";
     };
   };
   oxygen = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/oxygen-5.11.5.tar.xz";
-      sha256 = "1n2xr3a0002xfiy99gjqlny76nxjlss1d3sgcj8adpza44j91228";
-      name = "oxygen-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/oxygen-5.12.1.tar.xz";
+      sha256 = "1pmw26aihk63zscxzwacp6yfqg1siamvjcgc4b81xafcby5w1xyz";
+      name = "oxygen-5.12.1.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-desktop-5.11.5.tar.xz";
-      sha256 = "0djzs80mr0radmhai3k7jnlwlp76maf7vvrgkfckzs63n1jhdhb3";
-      name = "plasma-desktop-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-desktop-5.12.1.tar.xz";
+      sha256 = "1mjwjvv0dmvvpghckqw56s2khdxbgqvs0n68c06v56hcnsvxpadw";
+      name = "plasma-desktop-5.12.1.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-integration-5.11.5.tar.xz";
-      sha256 = "1rmq8i0flrvqcl21fnn94d58zyw55scagrzbjw92p34i1mllhif1";
-      name = "plasma-integration-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-integration-5.12.1.tar.xz";
+      sha256 = "0ljdwfw2b8nk5nsxhhhx4vh9mrdvchrzr39y6wx7yq0hk8ldspkf";
+      name = "plasma-integration-5.12.1.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-nm-5.11.5.tar.xz";
-      sha256 = "11lw26nd1rp2wbmqlf37wgk8qzv4fcc5x04g1i1h7c6hmjf5svqv";
-      name = "plasma-nm-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-nm-5.12.1.tar.xz";
+      sha256 = "023v1v8c6zqddnms82xyym99x7faxf3g304q8zd5hk1xmwxfydmq";
+      name = "plasma-nm-5.12.1.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-pa-5.11.5.tar.xz";
-      sha256 = "1gdkz9yx21skg3c95nwh1mwacvrklgpfl0cspsmyyfnbnv93cz94";
-      name = "plasma-pa-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-pa-5.12.1.tar.xz";
+      sha256 = "19qfmrqsxf4h59ayy2cr8qixk04wlh9gg5f6aqlrbd81611pnmss";
+      name = "plasma-pa-5.12.1.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-sdk-5.11.5.tar.xz";
-      sha256 = "013dc8dg0nhgdjlflgpqi28jsyparnwrj5am8lzvc0kkd9f69yhk";
-      name = "plasma-sdk-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-sdk-5.12.1.tar.xz";
+      sha256 = "11irkik3ppvcxfv4cd4jyim0qrr0i8y1911vw9h8gppg4bihiibr";
+      name = "plasma-sdk-5.12.1.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-tests-5.11.5.tar.xz";
-      sha256 = "00n1i6s1811w5h37i2iyy924495d2w24vfsl348cxplfxpxhcqf0";
-      name = "plasma-tests-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-tests-5.12.1.tar.xz";
+      sha256 = "1vk4c61839ggwdjxnmv6f5l5rcml4q6sjhrxykw9sx2fk43b7aqc";
+      name = "plasma-tests-5.12.1.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-vault-5.11.5.tar.xz";
-      sha256 = "1pg891fahslnjn5jdsjjlw8i2l71ddznxjg96l9wycvh6nn7k0v6";
-      name = "plasma-vault-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-vault-5.12.1.tar.xz";
+      sha256 = "13ph0npgjc8mx1jn1pszj0hv3332lyamiq4wrpc7qgj6cx81qygz";
+      name = "plasma-vault-5.12.1.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-workspace-5.11.5.tar.xz";
-      sha256 = "1ipklc6v2ml095sy80rgq4123vkk3famjwf8s3rgkk172s76qm98";
-      name = "plasma-workspace-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-workspace-5.12.1.tar.xz";
+      sha256 = "1ijnafbsyrv9n0mldf77mipq03k29db2ad57iwvr310xpr0sckfq";
+      name = "plasma-workspace-5.12.1.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plasma-workspace-wallpapers-5.11.5.tar.xz";
-      sha256 = "0zhcpbb74phnmr24kxcp0k6gr7gjzdfbrrv4xjjb2qpg2d00l3pm";
-      name = "plasma-workspace-wallpapers-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plasma-workspace-wallpapers-5.12.1.tar.xz";
+      sha256 = "0lsczs68w9ygzc9m7q2r6fziddzgraavyf2vf49d7543lym21k8n";
+      name = "plasma-workspace-wallpapers-5.12.1.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/plymouth-kcm-5.11.5.tar.xz";
-      sha256 = "152fyg5hc3rzvqw0z88pgapnhc64jx34vcqgsslsfja8mwk9h0ql";
-      name = "plymouth-kcm-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/plymouth-kcm-5.12.1.tar.xz";
+      sha256 = "1wqqxxmcn49gryr7pyn5hq3jyl92r0m8dxns2wn2mgy2cz0xz5yk";
+      name = "plymouth-kcm-5.12.1.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.11.5";
+    version = "1-5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/polkit-kde-agent-1-5.11.5.tar.xz";
-      sha256 = "0bwv567czi9h3rxgn19aw10nq5c674zd8wgk9nj006km1yyxrgy6";
-      name = "polkit-kde-agent-1-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/polkit-kde-agent-1-5.12.1.tar.xz";
+      sha256 = "1hsy14xprgpfh0zgn1z9c8j8qs41wfizm38wr7nbnhk81k25kr96";
+      name = "polkit-kde-agent-1-5.12.1.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/powerdevil-5.11.5.tar.xz";
-      sha256 = "0jqf85bain8vj5plxvvbdwiwc2jyb1r6idajhr6igcpjryfa75hj";
-      name = "powerdevil-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/powerdevil-5.12.1.tar.xz";
+      sha256 = "09c8snaf236cbxp8ifv8zwy1zifld3gsszvvzyvwdhbpz3gr41hm";
+      name = "powerdevil-5.12.1.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/sddm-kcm-5.11.5.tar.xz";
-      sha256 = "1ln1h4r614rg4w6b7g5l7yqqijkaaj04s4g4m41d8rg8z5ywq4v0";
-      name = "sddm-kcm-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/sddm-kcm-5.12.1.tar.xz";
+      sha256 = "1ij90cjjnb8318v6s4m56xfhs6cvi9p09mwmgqsh5463ya74x7dy";
+      name = "sddm-kcm-5.12.1.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/systemsettings-5.11.5.tar.xz";
-      sha256 = "0ycdfl585853481bjix63nnj7qvg767qpbyr015k32c1v3vllx8y";
-      name = "systemsettings-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/systemsettings-5.12.1.tar.xz";
+      sha256 = "1nzscbs8v22wa8adlxcvhr2qhibpq3dm584774ma3rmzvagjl6hv";
+      name = "systemsettings-5.12.1.tar.xz";
     };
   };
   user-manager = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/user-manager-5.11.5.tar.xz";
-      sha256 = "1r4q411g2r6cz4z6bm5jwygfbvrfrl8dawdd69s6h93ixs7697s4";
-      name = "user-manager-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/user-manager-5.12.1.tar.xz";
+      sha256 = "0db8lgh6sxfbc9v68yqq0g68rznkk8ml88h8zxrw5khicazg2n62";
+      name = "user-manager-5.12.1.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.11.5";
+    version = "5.12.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.11.5/xdg-desktop-portal-kde-5.11.5.tar.xz";
-      sha256 = "07xwb4zbf0cp4a672vs631dh9cqyvn0j9wwlknc21jzr619mnkap";
-      name = "xdg-desktop-portal-kde-5.11.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.12.1/xdg-desktop-portal-kde-5.12.1.tar.xz";
+      sha256 = "0xnryki83vmm1jmzkwfkxga0s1qfrl939rg6bb5h44j6665sv2bl";
+      name = "xdg-desktop-portal-kde-5.12.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/plasma-5/systemsettings.nix b/pkgs/desktops/plasma-5/systemsettings.nix
index 4c449aa2703c..a6199d9fbef2 100644
--- a/pkgs/desktops/plasma-5/systemsettings.nix
+++ b/pkgs/desktops/plasma-5/systemsettings.nix
@@ -2,7 +2,7 @@
   mkDerivation, extra-cmake-modules, kdoctools,
   kcmutils, kconfig, kdbusaddons, khtml, ki18n, kiconthemes, kio, kitemviews,
   kservice, kwindowsystem, kxmlgui, qtquickcontrols, qtquickcontrols2,
-  kactivities, kactivities-stats, kirigami2
+  kactivities, kactivities-stats, kirigami2, kcrash
 }:
 
 mkDerivation {
@@ -11,7 +11,7 @@ mkDerivation {
   buildInputs = [
     kcmutils kconfig kdbusaddons khtml ki18n kiconthemes kio kitemviews kservice
     kwindowsystem kxmlgui qtquickcontrols qtquickcontrols2
-    kactivities kactivities-stats kirigami2
+    kactivities kactivities-stats kirigami2 kcrash
   ];
   outputs = [ "bin" "dev" "out" ];
 }