about summary refs log tree commit diff
path: root/nixpkgs/pkgs/desktops/deepin/core
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin/core')
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix82
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff68
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix64
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix33
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix90
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch29
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix44
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff13
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix92
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix76
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix58
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix69
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix48
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff15
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix6
25 files changed, 607 insertions, 429 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
index b6ab01e7c2b7..4c27ced09d56 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
@@ -7,17 +7,19 @@
 , cmake
 , wrapQtAppsHook
 , qtbase
+, qttools
+, doxygen
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-app-services";
-  version = "0.0.20";
+  version = "1.0.23";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-M9XXNV3N4CifOXitT6+UxaGsLoVuoNGqC5SO/mF+bLw=";
+    hash = "sha256-INxbRDpG3MqPW6IMTqEagDCGo7vwxkR6D1+lcWdjO3w=";
   };
 
   postPatch = ''
@@ -28,10 +30,16 @@ stdenv.mkDerivation rec {
     substituteInPlace dconfig-center/CMakeLists.txt \
       --replace 'add_subdirectory("example")' " " \
       --replace 'add_subdirectory("tests")'   " "
+
+    substituteInPlace dconfig-center/dde-dconfig-daemon/services/dde-dconfig-daemon.service \
+      --replace "/usr/bin" "$out/bin" \
+      --replace "/usr/share" "/run/current-system/sw/share"
   '';
 
   nativeBuildInputs = [
     cmake
+    qttools
+    doxygen
     wrapQtAppsHook
   ];
 
@@ -44,8 +52,15 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DDVERSION=${version}"
     "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg"
+    "-DQCH_INSTALL_DESTINATION=${placeholder "out"}/${qtbase.qtDocPrefix}"
   ];
 
+  preConfigure = ''
+    # qt.qpa.plugin: Could not find the Qt platform plugin "minimal"
+    # A workaround is to set QT_PLUGIN_PATH explicitly
+    export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
+
   meta = with lib; {
     description = "Provids dbus service for reading and writing DSG configuration";
     homepage = "https://github.com/linuxdeepin/dde-app-services";
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix
new file mode 100644
index 000000000000..fef56b3978f7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+, qtbase
+, dtkgui
+, gsettings-qt
+, gtk3
+, kconfig
+, kwindowsystem
+, kglobalaccel
+, xorg
+, iconv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-appearance";
+  version = "1.1.6";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-7oRbydLXw8yRzi9L1GH/q0cjMY/DLyWbj4RUSyNpVNM=";
+  };
+
+  patches = [
+    ./fix-custom-wallpapers-path.diff
+  ];
+
+  postPatch = ''
+    substituteInPlace src/service/impl/appearancemanager.cpp \
+      src/service/modules/api/compatibleengine.cpp \
+      src/service/modules/subthemes/customtheme.cpp \
+      --replace "/usr/share" "/run/current-system/sw/share"
+
+    for file in $(grep -rl "/usr/bin/dde-appearance"); do
+      substituteInPlace $file --replace "/usr/bin/dde-appearance" "$out/bin/dde-appearance"
+    done
+
+    substituteInPlace src/service/modules/api/themethumb.cpp \
+      --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
+
+    substituteInPlace src/service/dbus/deepinwmfaker.cpp \
+      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+
+    substituteInPlace src/service/modules/api/locale.cpp \
+      --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkgui
+    gsettings-qt
+    gtk3
+    kconfig
+    kwindowsystem
+    kglobalaccel
+    xorg.libXcursor
+    xorg.xcbutilcursor
+  ];
+
+  cmakeFlags = [
+    "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg"
+    "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user"
+  ];
+
+  meta = with lib; {
+    description = "A program used to set the theme and appearance of deepin desktop";
+    homepage = "https://github.com/linuxdeepin/dde-appearance";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff
new file mode 100644
index 000000000000..b9ef2aaafc23
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff
@@ -0,0 +1,68 @@
+diff --git a/misc/dconfig/org.deepin.dde.appearance.json b/misc/dconfig/org.deepin.dde.appearance.json
+index b612e6e..371f966 100644
+--- a/misc/dconfig/org.deepin.dde.appearance.json
++++ b/misc/dconfig/org.deepin.dde.appearance.json
+@@ -143,7 +143,7 @@
+             "visibility": "private"
+         },
+         "Background_Uris": {
+-            "value": ["file:///usr/share/backgrounds/default_background.jpg"],
++            "value": ["file:///run/current-system/sw/share/backgrounds/default_background.jpg"],
+             "serial": 0,
+             "flags": [],
+             "name": "Background_Uris",
+diff --git a/src/service/dbus/deepinwmfaker.cpp b/src/service/dbus/deepinwmfaker.cpp
+index 5d455fa..40ec608 100644
+--- a/src/service/dbus/deepinwmfaker.cpp
++++ b/src/service/dbus/deepinwmfaker.cpp
+@@ -54,13 +54,13 @@ Q_GLOBAL_STATIC_WITH_ARGS(QGSettings, _gsettings_dde_zone, ("com.deepin.dde.zone
+ 
+ #define KWinDBusCompositorInterface "org.kde.kwin.Compositing"
+ #define KWinDBusCompositorPath "/Compositor"
+-const char defaultFirstBackgroundUri[] = "file:///usr/share/wallpapers/deepin/desktop.jpg";
++const char defaultFirstBackgroundUri[] = "file:///run/current-system/sw/share/wallpapers/deepin/desktop.jpg";
+ const char defaultSecondBackgroundUri[] = "francesco-ungaro-1fzbUyzsHV8-unsplash";
+ 
+ //default cursor size :24
+ #define DEFAULTCURSORSIZE 24
+ 
+-const char fallback_background_name[] = "file:///usr/share/backgrounds/default_background.jpg";
++const char fallback_background_name[] = "file:///run/current-system/sw/share/backgrounds/default_background.jpg";
+ 
+ //using org::kde::KWin;
+ 
+diff --git a/src/service/impl/appearancemanager.cpp b/src/service/impl/appearancemanager.cpp
+index 360ca6f..6db93ab 100644
+--- a/src/service/impl/appearancemanager.cpp
++++ b/src/service/impl/appearancemanager.cpp
+@@ -821,7 +821,7 @@ void AppearanceManager::doUpdateWallpaperURIs()
+     }
+ 
+     // 如果是用户自己设置的桌面壁纸, 需要将主题更新为自定义
+-    if (!monitorWallpaperUris.first().startsWith("/usr/share/wallpapers/deepin")) {
++    if (!monitorWallpaperUris.first().startsWith("/run/current-system/sw/share/wallpapers/deepin")) {
+         updateCustomTheme(TYPEWALLPAPER, monitorWallpaperUris.first());
+     }
+ }
+@@ -1689,7 +1689,7 @@ QString AppearanceManager::getWallpaperUri(const QString &index, const QString &
+             const Background &bg = backgroudlist.at(QRandomGenerator::global()->generate() % backgroudlist.size());
+             wallpaper = bg.getId();
+         } else {
+-            wallpaper = "file:///usr/share/wallpapers/deepin/desktop.jpg";
++            wallpaper = "file:///run/current-system/sw/wallpapers/deepin/desktop.jpg";
+         }
+ 
+         PhaseWallPaper::setWallpaperUri(index, monitorName, wallpaper);
+diff --git a/src/service/modules/background/backgrounds.cpp b/src/service/modules/background/backgrounds.cpp
+index bf739a5..1076d59 100644
+--- a/src/service/modules/background/backgrounds.cpp
++++ b/src/service/modules/background/backgrounds.cpp
+@@ -11,7 +11,7 @@
+ #include <pwd.h>
+ #include <QDBusReply>
+ 
+-QStringList Backgrounds::systemWallpapersDir = { "/usr/share/wallpapers/deepin" };
++QStringList Backgrounds::systemWallpapersDir = { "/run/current-system/sw/wallpapers/deepin" };
+ QStringList Backgrounds::uiSupportedFormats = { "jpeg", "png", "bmp", "tiff", "gif" };
+ 
+ Backgrounds::Backgrounds(QObject *parent)
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix
new file mode 100644
index 000000000000..0949bc6e4993
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+, qtbase
+, dtkwidget
+, dde-polkit-agent
+, gsettings-qt
+, libcap
+, jemalloc
+, xorg
+, iconv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-application-manager";
+  version = "1.0.19";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-1P265xqlL/wML66nKdfTgkRx6MCpLwrt5rXu+CyeShU=";
+  };
+
+  # remove this patch after next release
+  postPatch = ''
+    substituteInPlace src/modules/mimeapp/mime_app.cpp src/modules/launcher/common.h src/service/main.cpp \
+      misc/dconf/com.deepin.dde.appearance.json \
+      --replace "/usr/share" "/run/current-system/sw/share"
+
+    substituteInPlace src/lib/dlocale.cpp --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias"
+
+    for file in $(grep -rl "/usr/bin"); do
+      substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/"
+    done
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    dtkwidget
+    gsettings-qt
+    libcap
+    jemalloc
+    xorg.libXdmcp
+    xorg.libXres
+  ];
+
+  meta = with lib; {
+    description = "Application manager for DDE";
+    homepage = "https://github.com/linuxdeepin/dde-application-manager";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
index 62e8399ff253..28bedd7187ac 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-calendar";
-  version = "5.10.1";
+  version = "5.11.0";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-oPrtPOCLZof4BysWfsCYeoqbJf30r7LijGEEXZlsAAY=";
+    hash = "sha256-AgomXDydGHzfybE3r4IW94zIWKtwURmLW68MwqjLBWE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix
index 47ec1c837b13..78f2fd0da6a2 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-clipboard/default.nix
@@ -2,13 +2,13 @@
 , lib
 , fetchFromGitHub
 , dtkwidget
-, qt5integration
-, qt5platform-plugins
-, dde-qt-dbus-factory
 , gio-qt
 , cmake
+, extra-cmake-modules
 , qttools
+, wayland
 , kwayland
+, dwayland
 , pkg-config
 , wrapQtAppsHook
 , glibmm
@@ -17,32 +17,18 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-clipboard";
-  version = "5.4.25";
+  version = "6.0.7";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-oFATOBXf4NvGxjVMlfxwfQkBffeKut8ao+X6T9twb/I=";
+    hash = "sha256-6CbCor0vgVMsMt8KY2uWrNqOsBEIaz7s2nViiHz+m1g=";
   };
 
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "/etc/xdg" "$out/etc/xdg" \
-      --replace "/lib/systemd/user" "$out/lib/systemd/user" \
-      --replace "/usr/share" "$out/share"
-
-    substituteInPlace misc/com.deepin.dde.Clipboard.service \
-      --replace "/usr/bin/qdbus" "${lib.getBin qttools}/bin/qdbus"
-
-    substituteInPlace misc/{dde-clipboard.desktop,dde-clipboard-daemon.service,com.deepin.dde.Clipboard.service} \
-      --replace "/usr" "$out"
-
-    patchShebangs translate_generation.sh generate_gtest_report.sh
-  '';
-
   nativeBuildInputs = [
     cmake
+    extra-cmake-modules
     pkg-config
     qttools
     wrapQtAppsHook
@@ -50,17 +36,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     dtkwidget
-    qt5integration
-    qt5platform-plugins
-    dde-qt-dbus-factory
     gio-qt
+    wayland
     kwayland
+    dwayland
     glibmm
     gtest
   ];
 
   cmakeFlags = [
-    "-DUSE_DEEPIN_WAYLAND=OFF"
+    "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
index a8625084ba12..f397e9ca2837 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
@@ -1,86 +1,47 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, cmake
+, pkg-config
+, qttools
+, doxygen
+, wrapQtAppsHook
+, wrapGAppsHook
 , dtkwidget
 , qt5integration
 , qt5platform-plugins
-, dde-qt-dbus-factory
 , deepin-pw-check
-, udisks2-qt5
-, cmake
-, qttools
 , qtbase
-, pkg-config
 , qtx11extras
 , qtmultimedia
-, wrapQtAppsHook
-, wrapGAppsHook
-, gsettings-qt
-, wayland
-, kwayland
-, qtwayland
 , polkit-qt
-, pcre
-, xorg
-, libselinux
-, libsepol
 , libxcrypt
 , librsvg
-, networkmanager-qt
-, glib
 , runtimeShell
-, tzdata
 , dbus
-, gtest
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-control-center";
-  version = "5.6.3";
+  version = "6.0.28";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/gzS+IbopIDRpufsa9cEfFBOqehPUnF4IozvwW8UEbY=";
+    hash = "sha256-kgQ4ySiYtaklOqER56QtKD9lk1CnRSEAU4QPHycl9eI=";
   };
 
-  patches = [
-    # UserExperienceProgramLicenseAgreement comes from a non-open source component(deepin-deepinid-client)
-    # If we don't block it, only an empty page will be displayed here
-    # Remove this patch when dde-control-center is upgraded to 6.0.0
-    ./dont-show-endUserLicenseAgreement-for-deepinos.patch
-  ];
-
   postPatch = ''
-    substituteInPlace src/frame/window/{mainwindow.cpp,insertplugin.cpp} com.deepin.controlcenter.develop.policy \
-      --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
-
-    substituteInPlace src/frame/modules/datetime/timezone_dialog/timezone.cpp \
-      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
-
-    substituteInPlace src/frame/modules/accounts/accountsworker.cpp \
+    substituteInPlace src/plugin-accounts/operation/accountsworker.cpp \
       --replace "/bin/bash" "${runtimeShell}"
-
-    substituteInPlace dde-control-center-autostart.desktop \
-      --replace "/usr" "$out"
-
-    substituteInPlace com.deepin.dde.ControlCenter.service \
-      --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
-      --replace "/usr/share" "$out/share"
-
-    substituteInPlace include/widgets/utils.h src/{reboot-reminder-dialog/main.cpp,frame/main.cpp,reset-password-dialog/main.cpp} \
-      --replace "/usr/share/dde-control-center" "$out/share/dde-control-center"
-
-    substituteInPlace dde-control-center-wapper \
-      --replace "qdbus" "${qttools.bin}/bin/qdbus" \
-      --replace "/usr/share" "$out/share"
   '';
 
   nativeBuildInputs = [
     cmake
-    qttools
     pkg-config
+    qttools
+    doxygen
     wrapQtAppsHook
     wrapGAppsHook
   ];
@@ -89,35 +50,31 @@ stdenv.mkDerivation rec {
   buildInputs = [
     dtkwidget
     qt5platform-plugins
-    dde-qt-dbus-factory
     deepin-pw-check
     qtbase
     qtx11extras
     qtmultimedia
-    gsettings-qt
-    udisks2-qt5
-    wayland
-    kwayland
-    qtwayland
     polkit-qt
-    pcre
-    xorg.libXdmcp
-    libselinux
-    libsepol
     libxcrypt
     librsvg
-    networkmanager-qt
-    gtest
   ];
 
   cmakeFlags = [
     "-DCVERSION=${version}"
     "-DDISABLE_AUTHENTICATION=YES"
-    "-DDISABLE_ACTIVATOR=YES"
-    "-DDISABLE_SYS_UPDATE=YES"
-    "-DDISABLE_RECOVERY=YES"
+    "-DDISABLE_UPDATE=YES"
+    "-DDISABLE_LANGUAGE=YES"
+    "-DBUILD_DOCS=OFF"
+    "-DMODULE_READ_DIR=/run/current-system/sw/lib/dde-control-center/modules"
+    "-DLOCALSTATE_READ_DIR=/var"
   ];
 
+  preConfigure = ''
+    # qt.qpa.plugin: Could not find the Qt platform plugin "minimal"
+    # A workaround is to set QT_PLUGIN_PATH explicitly
+    export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
+
   # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
   qtWrapperArgs = [
     "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
@@ -125,10 +82,11 @@ stdenv.mkDerivation rec {
   ];
 
   preFixup = ''
-    glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"}
     qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  outputs = [ "out" "dev" ];
+
   meta = with lib; {
     description = "Control panel of Deepin Desktop Environment";
     homepage = "https://github.com/linuxdeepin/dde-control-center";
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch
deleted file mode 100644
index 491007ea2bf3..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/dont-show-endUserLicenseAgreement-for-deepinos.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From adcc5eb58e2dcd06810a40c237bc7984c2c5af4b Mon Sep 17 00:00:00 2001
-From: rewine <luhongxu@deepin.org>
-Date: Sun, 8 Jan 2023 13:46:17 +0800
-Subject: [PATCH] dont show endUserLicenseAgreement for deepinos
-
----
- src/frame/window/modules/systeminfo/systeminfowidget.cpp | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/frame/window/modules/systeminfo/systeminfowidget.cpp b/src/frame/window/modules/systeminfo/systeminfowidget.cpp
-index 8e62604fb..0f443ee20 100644
---- a/src/frame/window/modules/systeminfo/systeminfowidget.cpp
-+++ b/src/frame/window/modules/systeminfo/systeminfowidget.cpp
-@@ -78,6 +78,12 @@ void SystemInfoWidget::initData()
-                 m_listView->setRowHidden(i, true);
-             }
-         }
-+
-+        if (IsNotDeepinUos) {
-+            if (m.gsettingsName == "endUserLicenseAgreement") {
-+                m_listView->setRowHidden(i, true);
-+            }
-+        }
-     }
- 
-     if (InsertPlugin::instance()->updatePluginInfo("systeminfo"))
--- 
-2.38.1
-
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
index 32e8ca97b6d1..5ea7da4ed201 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -1,49 +1,50 @@
 { stdenv
 , lib
+, fetchpatch
 , fetchFromGitHub
-, dtkwidget
-, dde-qt-dbus-factory
-, qt5integration
-, qt5platform-plugins
-, dde-control-center
-, deepin-desktop-schemas
 , cmake
+, extra-cmake-modules
 , qttools
-, qtx11extras
 , pkg-config
 , wrapQtAppsHook
 , wrapGAppsHook
+, qtbase
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, dwayland
+, qtx11extras
 , gsettings-qt
 , libdbusmenu
 , xorg
-, gtest
-, qtbase
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-dock";
-  version = "5.5.81";
+  version = "6.0.22";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-x8U5QPfIykaQLjwbErZiYbZC+JyPQQ+jd6MBjDQyUjs=";
+    hash = "sha256-fhc2faiPH35ZKw6SCoGTz+6mgxabNpCFQeY2p68Ba5w=";
   };
 
   postPatch = ''
-    substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp frame/controller/dockpluginscontroller.cpp \
-      --replace "/usr/lib/dde-dock/plugins" "/run/current-system/sw/lib/dde-dock/plugins"
+    substituteInPlace plugins/pluginmanager/pluginmanager.cpp frame/controller/quicksettingcontroller.cpp  \
+      --replace "/usr/lib/dde-dock" "/run/current-system/sw/lib/dde-dock"
 
-    substituteInPlace plugins/show-desktop/showdesktopplugin.cpp frame/window/components/desktop_widget.cpp \
-      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+    substituteInPlace configs/com.deepin.dde.dock.json frame/util/common.h \
+    --replace "/usr" "/run/current-system/sw"
 
-    substituteInPlace plugins/{dcc-dock-plugin/settings_module.cpp,tray/system-trays/systemtrayscontroller.cpp} \
-      --replace "/usr" "$out"
-    '';
+    for file in $(grep -rl "/usr/lib/deepin-daemon"); do
+      substituteInPlace $file --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+    done
+   '';
 
   nativeBuildInputs = [
     cmake
+    extra-cmake-modules
     qttools
     pkg-config
     wrapQtAppsHook
@@ -52,18 +53,17 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true;
 
   buildInputs = [
+    qtbase
     dtkwidget
     qt5platform-plugins
-    dde-qt-dbus-factory
-    dde-control-center
-    deepin-desktop-schemas
+    dwayland
     qtx11extras
     gsettings-qt
     libdbusmenu
     xorg.libXcursor
     xorg.libXtst
     xorg.libXdmcp
-    gtest
+    xorg.libXres
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
index 21d9ac3fa892..a197980c8d74 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , runtimeShell
 , dtkwidget
 , qt5integration
@@ -38,17 +39,18 @@
 , pcre
 , udisks2
 , libisoburn
+, gsettings-qt
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-file-manager";
-  version = "6.0.23";
+  version = "6.0.31";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-H+pCWZ1jj5p3gOKXYyLxSmjCMv5/BPIz5A25JGGzrR8=";
+    hash = "sha256-mc2HcoLrwMXKU8w34KUEh62ZfEIfbJLVzz4JGnUE5EM=";
   };
 
   nativeBuildInputs = [
@@ -60,6 +62,16 @@ stdenv.mkDerivation rec {
   ];
   dontWrapGApps = true;
 
+  patches = [
+    ./use_v23_dbus_interface.diff
+
+    (fetchpatch {
+      name = "use-pkgconfig-to-check-mount.patch";
+      url = "https://github.com/linuxdeepin/dde-file-manager/commit/b6c210057d991591df45b80607a614e7a57a9dc0.patch";
+      hash = "sha256-k0ZYlOVN3hHs1qvvRaJ3i6okOhDE+DoUKGs9AhSFBGU=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
 
@@ -115,11 +127,11 @@ stdenv.mkDerivation rec {
     pcre
     udisks2
     libisoburn
+    gsettings-qt
   ];
 
   cmakeFlags = [
     "-DVERSION=${version}"
-    "-DDEEPIN_OS_VERSION=20"
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff
new file mode 100644
index 000000000000..5a42ecd4a1f5
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e93d3ad..94e3eca 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,7 +30,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ endif()
+ 
+ #Indentify the version
+-if (${DEEPIN_OS_VERSION} MATCHES "23")
++if (TRUE)
+     add_definitions(-DCOMPILE_ON_V23)
+     set(COMPLIE_ON_V23 TRUE)
+     message("COMPILE ON v23")
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix
index 868f518e540f..a609d707a03c 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix
@@ -3,53 +3,48 @@
 , runCommand
 , glib
 , gtk3
-, dtkcommon
 , dde-dock
 , startdde
-, dde-launcher
 , dde-session-shell
-, dde-session-ui
-, dde-control-center
 , dde-file-manager
 , deepin-desktop-schemas
 , deepin-movie-reborn
 , deepin-screen-recorder
 , deepin-system-monitor
+, gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
 , extraGSettingsOverridePackages ? [ ]
 }:
 
 let
   gsettingsOverridePackages = [
-    dtkcommon
     dde-dock
     startdde
-    dde-launcher
     dde-session-shell
-    dde-session-ui
-    dde-control-center
     dde-file-manager
     deepin-desktop-schemas
     deepin-movie-reborn
     deepin-screen-recorder
     deepin-system-monitor
+    gsettings-desktop-schemas # dde-appearance need org.gnome.desktop.background
   ] ++ extraGSettingsOverridePackages;
 
 in
 with lib;
 
 # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
-runCommand "nixos-gsettings-desktop-schemas" { }
-  ''
-    schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+runCommand "nixos-gsettings-desktop-schemas" { preferLocalBuild = true; }
+''
+    data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
+    schema_dir="$data_dir/glib-2.0/schemas"
 
     mkdir -p $schema_dir
 
-    ${concatMapStrings (pkg: "cp -rvf ${glib.getSchemaPath pkg}/* $schema_dir\n") gsettingsOverridePackages}
+    ${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"$schema_dir\"") gsettingsOverridePackages}
 
-    chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
+    chmod -R a+w "$data_dir"
 
-    cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
+    cat - > "$schema_dir/nixos-defaults.gschema.override" <<- EOF
     ${extraGSettingsOverrides}
     EOF
 
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix
deleted file mode 100644
index bf1ca7317a40..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-kwin/default.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, cmake
-, pkg-config
-, extra-cmake-modules
-, deepin-gettext-tools
-, wrapQtAppsHook
-, makeWrapper
-, dtkcore
-, qtbase
-, qtx11extras
-, gsettings-qt
-, xorg
-, libepoxy
-, deepin-kwin
-, kdecoration
-, kconfig
-, kwayland
-, kwindowsystem
-, kglobalaccel
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dde-kwin";
-  version = "5.6.5";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = "b5c00527b86f773595c786c8015d60f8be3a681b";
-    sha256 = "sha256-qXN9AwjLnqO5BpnrX5PaSCKZ6ff874r08ubCMM272tA=";
-  };
-
-  /*
-    This is the final version of dde-kwin, upstream has been archived.
-    We should remove this package when deepin-kwin release a new version.
-  */
-
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "/usr/include/KWaylandServer" "${kwayland.dev}/include/KWaylandServer"
-    substituteInPlace deepin-wm-dbus/deepinwmfaker.cpp \
-      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon" \
-      --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" \
-      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
-    patchShebangs .
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-    extra-cmake-modules
-    deepin-gettext-tools
-    wrapQtAppsHook
-    makeWrapper
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtbase
-    qtx11extras
-    gsettings-qt
-    xorg.libXdmcp
-    libepoxy
-    deepin-kwin
-    kdecoration
-    kconfig
-    kwayland
-    kwindowsystem
-    kglobalaccel
-  ];
-
-  cmakeFlags = [
-    "-DPROJECT_VERSION=${version}"
-    "-DQT_INSTALL_PLUGINS=${placeholder "out"}/${qtbase.qtPluginPrefix}"
-  ];
-
-  # kwin_no_scale is a shell script
-  postFixup = ''
-    wrapProgram $out/bin/kwin_no_scale \
-      --set QT_QPA_PLATFORM_PLUGIN_PATH "${placeholder "out"}/${qtbase.qtPluginPrefix}"
-  '';
-
-  meta = with lib; {
-    description = "KWin configuration for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-kwin";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.deepin.members;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix
deleted file mode 100644
index 7d850c544d53..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-launcher/default.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, dtkwidget
-, dde-qt-dbus-factory
-, qt5integration
-, qt5platform-plugins
-, cmake
-, qttools
-, qtx11extras
-, pkg-config
-, wrapQtAppsHook
-, wrapGAppsHook
-, gsettings-qt
-, gtest
-, qtbase
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dde-launcher";
-  version = "5.6.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-Td8R91892tgJx7FLV2IZ/aPBzDb+o6EYKpk3D8On7Ag=";
-  };
-
-  postPatch = ''
-    #fix build with new dtk(https://github.com/linuxdeepin/dde-launcher/pull/369)
-    substituteInPlace src/windowedframe.h \
-      --replace "#include <dregionmonitor.h>" " "
-    substituteInPlace src/boxframe/{backgroundmanager.cpp,boxframe.cpp} \
-      --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds"
-    substituteInPlace dde-launcher.desktop dde-launcher-wapper src/dbusservices/com.deepin.dde.Launcher.service \
-      --replace "/usr" "$out"
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    qttools
-    pkg-config
-    wrapQtAppsHook
-    wrapGAppsHook
-  ];
-  dontWrapGApps = true;
-
-  buildInputs = [
-    dtkwidget
-    qt5platform-plugins
-    dde-qt-dbus-factory
-    qtx11extras
-    gsettings-qt
-    gtest
-  ];
-
-  cmakeFlags = [ "-DVERSION=${version}" ];
-
-  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
-  qtWrapperArgs = [
-    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
-  ];
-
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
-  meta = with lib; {
-    description = "Deepin desktop-environment - Launcher module";
-    homepage = "https://github.com/linuxdeepin/dde-launcher";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.deepin.members;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix
new file mode 100644
index 000000000000..92311a49352c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, qttools
+, pkg-config
+, wrapQtAppsHook
+, dtkwidget
+, dtkdeclarative
+, qtbase
+, appstream-qt
+, kitemmodels
+, qt5integration
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-launchpad";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-o9YKmtaqa4ykoR75V2OpXm4GRPWHI6WKbxWAzY1b8I0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    dtkdeclarative
+    qtbase
+    appstream-qt
+    kitemmodels
+  ];
+
+  cmakeFlags = [
+    "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user"
+  ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  meta = with lib; {
+    description = "The 'launcher' or 'start menu' component for DDE";
+    homepage = "https://github.com/linuxdeepin/dde-launchpad";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
index 6c192471525e..24d46698765e 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
@@ -5,41 +5,28 @@
 , qttools
 , pkg-config
 , wrapQtAppsHook
+, qtbase
+, qtsvg
 , dtkwidget
 , dde-dock
 , dde-control-center
 , dde-session-shell
-, dde-qt-dbus-factory
-, gsettings-qt
-, gio-qt
 , networkmanager-qt
 , glib
-, pcre
-, util-linux
-, libselinux
-, libsepol
-, dbus
 , gtest
-, qtbase
 }:
+
 stdenv.mkDerivation rec {
   pname = "dde-network-core";
-  version = "1.1.8";
+  version = "2.0.15";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ysmdB9CT7mhN/0r8CRT4FQsK12HkhjbezGXwWiNScqg=";
+    hash = "sha256-AMuWEz3Eyw0tG0srLWpqS7MO7Z4ZzIay4z59cZQZU0o=";
   };
 
-  postPatch = ''
-    substituteInPlace dock-network-plugin/networkplugin.cpp dcc-network-plugin/dccnetworkmodule.cpp dss-network-plugin/network_module.cpp \
-      --replace "/usr/share" "$out/share"
-    substituteInPlace dss-network-plugin/notification/bubbletool.cpp \
-      --replace "/usr/share" "/run/current-system/sw/share"
-  '';
-
   nativeBuildInputs = [
     cmake
     qttools
@@ -48,19 +35,14 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    qtbase
+    qtsvg
     dtkwidget
     dde-dock
     dde-control-center
     dde-session-shell
-    dde-qt-dbus-factory
-    gsettings-qt
-    gio-qt
     networkmanager-qt
     glib
-    pcre
-    util-linux
-    libselinux
-    libsepol
     gtest
   ];
 
@@ -68,6 +50,8 @@ stdenv.mkDerivation rec {
     "-DVERSION=${version}"
   ];
 
+  strictDeps = true;
+
   meta = with lib; {
     description = "DDE network library framework";
     homepage = "https://github.com/linuxdeepin/dde-network-core";
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix
index a1acab05cf1a..f3f93be7f30e 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-polkit-agent/default.nix
@@ -12,22 +12,18 @@
 , polkit-qt
 , qtbase
 }:
+
 stdenv.mkDerivation rec {
   pname = "dde-polkit-agent";
-  version = "5.5.22";
+  version = "6.0.5";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4wAqMymLPxKXbfAx2PtkEGfwenphPxBZn+qCdcyqNc0=";
+    hash = "sha256-NSMwNL4ttCaqo0h0sF11bOJ20FhOB+SG27K4k8F4O/o=";
   };
 
-  postPatch = ''
-    substituteInPlace AuthDialog.cpp \
-      --replace "/usr/share/dde-session-shell/dde-session-shell.conf" "/etc/dde-session-shell/dde-session-shell.conf"
-  '';
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
index ac5f5fbc7ec0..48479c6893ea 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
@@ -2,49 +2,46 @@
 , lib
 , fetchFromGitHub
 , linkFarm
-, dtkwidget
-, qt5integration
-, qt5platform-plugins
-, dde-qt-dbus-factory
 , cmake
 , pkg-config
 , qttools
-, qtx11extras
 , wrapQtAppsHook
 , wrapGAppsHook
+, qtbase
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, deepin-pw-check
 , gsettings-qt
 , lightdm_qt
+, qtx11extras
 , linux-pam
 , xorg
-, kwayland
 , gtest
 , xkeyboard_config
 , dbus
-, qtbase
 , dde-session-shell
 }:
+
 stdenv.mkDerivation rec {
   pname = "dde-session-shell";
-  version = "5.6.4";
+  version = "6.0.10";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mrdGu4t86d3No23IrnjypVLx1jxaySatr0xPMY9l5S4";
+    hash = "sha256-h4X3RZe7+CxVeFmk/7+7K4d/2D1+jhECKQaxl4TsuvM=";
   };
 
   postPatch = ''
-    substituteInPlace src/lightdm-deepin-greeter/greeterworker.cpp \
-      --replace "/usr/include/shadow.h" "shadow.h"
-
     substituteInPlace scripts/lightdm-deepin-greeter files/wayland/lightdm-deepin-greeter-wayland \
       --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
 
     substituteInPlace src/session-widgets/auth_module.h \
       --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
 
-    substituteInPlace src/global_util/plugin_manager/modules_loader.cpp \
+    substituteInPlace src/global_util/modules_loader.cpp \
       --replace "/usr/lib/dde-session-shell/modules" "/run/current-system/sw/lib/dde-session-shell/modules"
 
     substituteInPlace src/{session-widgets/{lockcontent.cpp,userinfo.cpp},widgets/fullscreenbackground.cpp} \
@@ -53,7 +50,7 @@ stdenv.mkDerivation rec {
     substituteInPlace src/global_util/xkbparser.h \
       --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
 
-    substituteInPlace files/{com.deepin.dde.shutdownFront.service,com.deepin.dde.lockFront.service} \
+    substituteInPlace files/{org.deepin.dde.ShutdownFront1.service,org.deepin.dde.LockFront1.service} \
       --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
       --replace "/usr/share" "$out/share"
 
@@ -73,14 +70,14 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true;
 
   buildInputs = [
+    qtbase
     dtkwidget
     qt5platform-plugins
-    dde-qt-dbus-factory
+    deepin-pw-check
     gsettings-qt
     lightdm_qt
     qtx11extras
     linux-pam
-    kwayland
     xorg.libXcursor
     xorg.libXtst
     xorg.libXrandr
@@ -88,6 +85,8 @@ stdenv.mkDerivation rec {
     gtest
   ];
 
+  outputs = [ "out" "dev" ];
+
   # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
   qtWrapperArgs = [
     "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
index d07389c6646e..a732589d7ea1 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
@@ -1,39 +1,29 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, cmake
+, pkg-config
+, qttools
+, wrapQtAppsHook
+, qtbase
 , dtkwidget
 , qt5integration
 , qt5platform-plugins
-, pkg-config
-, cmake
 , dde-dock
-, dde-qt-dbus-factory
-, deepin-gettext-tools
 , gsettings-qt
-, lightdm_qt
-, qttools
 , qtx11extras
-, util-linux
-, xorg
-, pcre
-, libselinux
-, libsepol
-, wrapQtAppsHook
 , gtest
-, xkeyboard_config
-, qtbase
-, dbus
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-session-ui";
-  version = "5.6.2";
+  version = "6.0.10";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3lW/M07b6gXzGcvQYB+Ojqdq7TfJBaMIKfmfG7o3wWg=";
+    hash = "sha256-JwktVbwWdfqURhZuEFdB5oaKMsBZu5DekpZ2WGpcL4Q=";
   };
 
   postPatch = ''
@@ -41,22 +31,10 @@ stdenv.mkDerivation rec {
       --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" \
       --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
 
-    substituteInPlace global_util/xkbparser.h \
-      --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
-
-    substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service dde-osd/files/dde-osd.desktop dde-welcome/com.deepin.dde.welcome.service \
+    substituteInPlace dde-warning-dialog/src/org.deepin.dde.WarningDialog1.service dde-welcome/src/org.deepin.dde.Welcome1.service \
       --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
 
-    substituteInPlace dde-osd/notification/bubbletool.cpp \
-      --replace "/usr/share" "/run/current-system/sw/share"
-
-    substituteInPlace dde-osd/files/{com.deepin.dde.Notification.service,com.deepin.dde.freedesktop.Notification.service,com.deepin.dde.osd.service} \
-      --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
-      --replace "/usr/share" "$out/share"
-
-     substituteInPlace dde-lowpower/main.cpp dmemory-warning-dialog/main.cpp dde-touchscreen-dialog/main.cpp dnetwork-secret-dialog/main.cpp dde-suspend-dialog/main.cpp \
-    dde-warning-dialog/main.cpp dde-bluetooth-dialog/main.cpp dde-welcome/main.cpp dde-hints-dialog/main.cpp dde-osd/main.cpp dde-wm-chooser/main.cpp \
-    dde-license-dialog/{content.cpp,main.cpp} dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service \
+    substituteInPlace dmemory-warning-dialog/src/org.deepin.dde.MemoryWarningDialog1.service \
       --replace "/usr" "$out"
   '';
 
@@ -64,25 +42,23 @@ stdenv.mkDerivation rec {
     cmake
     pkg-config
     qttools
-    deepin-gettext-tools
     wrapQtAppsHook
   ];
 
   buildInputs = [
+    qtbase
     dtkwidget
     qt5platform-plugins
     dde-dock
-    dde-qt-dbus-factory
     gsettings-qt
     qtx11extras
-    pcre
-    xorg.libXdmcp
-    util-linux
-    libselinux
-    libsepol
     gtest
   ];
 
+  cmakeFlags = [
+   "-DDISABLE_SYS_UPDATE=ON"
+  ];
+
   # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
   qtWrapperArgs = [
     "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix
new file mode 100644
index 000000000000..72ae99f8c843
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+, qtbase
+, dtkcore
+, gsettings-qt
+, libsecret
+, xorg
+, systemd
+, dde-polkit-agent
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-session";
+  version = "1.1.9";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-CyHvvNALXe4fOMjD48By/iaU6/xNUhH9yG19Ob3bHy0=";
+  };
+
+  postPatch = ''
+    # Avoid using absolute path to distinguish applications
+    substituteInPlace src/dde-session/impl/sessionmanager.cpp \
+      --replace 'file.readAll().startsWith("/usr/bin/dde-lock")' 'file.readAll().contains("dde-lock")' \
+
+    substituteInPlace systemd/dde-session-initialized.target.wants/dde-polkit-agent.service \
+      --replace "/usr/lib/polkit-1-dde" "${dde-polkit-agent}/lib/polkit-1-dde"
+
+    for file in $(grep -rl "/usr/lib/deepin-daemon"); do
+      substituteInPlace $file --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+    done
+
+    for file in $(grep -rl "/usr/bin"); do
+      substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/"
+    done
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    dtkcore
+    gsettings-qt
+    libsecret
+    xorg.libXcursor
+    systemd
+  ];
+
+  # FIXME: dde-wayland always exits abnormally
+  passthru.providedSessions = [ "dde-x11" ];
+
+  meta = with lib; {
+    description = "New deepin session based on systemd and existing projects";
+    homepage = "https://github.com/linuxdeepin/dde-session";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix
new file mode 100644
index 000000000000..975cb978e7a7
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, dde-qt-dbus-factory
+, wrapQtAppsHook
+, qtbase
+, qtx11extras
+, dtkwidget
+, qt5integration
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-widgets";
+  version = "6.0.14";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-bmhT7UhMXtC5wlRtwlVnGjoq8rUQcDSk4rGQ0Xrz9ZI=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    dde-qt-dbus-factory
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qtx11extras
+    dtkwidget
+    qt5integration
+    gtest
+  ];
+
+  meta = with lib; {
+    description = "Desktop widgets service/implementation for DDE";
+    homepage = "https://github.com/linuxdeepin/dde-widgets";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff
new file mode 100644
index 000000000000..872fa26c5e55
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/0001-hardcode-fallback-background.diff
@@ -0,0 +1,15 @@
+diff --git a/src/effects/multitaskview/multitaskview.cpp b/src/effects/multitaskview/multitaskview.cpp
+index 268bc42..d41f7bf 100644
+--- a/src/effects/multitaskview/multitaskview.cpp
++++ b/src/effects/multitaskview/multitaskview.cpp
+@@ -50,8 +50,8 @@
+ #define SCISSOR_HOFFD 400
+ 
+ const char screen_recorder[] = "deepin-screen-recorder deepin-screen-recorder";
+-const char fallback_background_name[] = "file:///usr/share/wallpapers/deepin/desktop.jpg";
+-const char previous_default_background_name[] = "file:///usr/share/backgrounds/default_background.jpg";
++const char fallback_background_name[] = "file:///run/current-system/sw/share/wallpapers/deepin/desktop.jpg";
++const char previous_default_background_name[] = "file:///run/current-system/sw/share/backgrounds/default_background.jpg";
+ const char add_workspace_png[] = ":/effects/multitaskview/buttons/add-light.png";//":/resources/themes/add-light.svg";
+ const char delete_workspace_png[] = ":/effects/multitaskview/buttons/workspace_delete.png";
+ 
diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
index 456f20b51906..03e40357317c 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
@@ -36,23 +36,19 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-kwin";
-  version = "5.24.3-deepin.1.9";
-
-  /*
-    There are no buildable tag in github:
-      - 5.15 tag in eagel branch is used for UOS, it's too old to compile.
-      - 5.25 tag in master branch only work on unreleased deepin v23.
-    Since deepin-kwin was not maintained on github before, we lost all
-    tags in master branch, this version is read from debian/changelog
-  */
+  version = "5.25.11";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
-    rev = "98c9085670938937e2a1ce964f6acddc5c1d6eb5";
-    sha256 = "sha256-/hgDuaDrpwAQsMIoaS8pGBJwWfJSrq6Yjic3a60ITtM=";
+    rev = version;
+    hash = "sha256-J92T1hsRmmtkjF9OPsrikRtd7bQSEG88UOYu+BHUSx0=";
   };
 
+  patches = [
+    ./0001-hardcode-fallback-background.diff
+  ];
+
   # Avoid using absolute path to distinguish applications
   postPatch = ''
     substituteInPlace src/effects/screenshot/screenshotdbusinterface1.cpp \
@@ -102,6 +98,7 @@ stdenv.mkDerivation rec {
     xorg.libXcursor
     xorg.xcbutilcursor
     xorg.libXtst
+    xorg.libXScrnSaver
   ];
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
new file mode 100644
index 000000000000..3d657ef33869
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "deepin-service-manager";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    hash = "sha256-gTzyQHFPyn2+A+o+4VYySDBCZftfG2WnTXuqzeF+QhA=";
+  };
+
+  postPatch = ''
+    for file in $(grep -rl "/usr/bin/deepin-service-manager"); do
+      substituteInPlace $file --replace "/usr/bin/deepin-service-manager" "$out/bin/deepin-service-manager"
+    done
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  meta = with lib; {
+    description = "Manage DBus service on Deepin";
+    homepage = "https://github.com/linuxdeepin/deepin-service-manager";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix
index f9b4e7592fb8..febfa41711e0 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dpa-ext-gnomekeyring/default.nix
@@ -7,19 +7,20 @@
 , wrapQtAppsHook
 , dtkwidget
 , dde-polkit-agent
+, qt5integration
 , libsecret
 , libgnome-keyring
 }:
 
 stdenv.mkDerivation rec {
   pname = "dpa-ext-gnomekeyring";
-  version = "5.0.11";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mXaGwbtEwaqfOT0izK64zX4s3VFmsRpUGOVm6oSEhn8=";
+    hash = "sha256-SyoahSdGPkWitDek4RD5M2hTR78GFpuijryteKVAx6k=";
   };
 
   postPatch = ''
@@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     dtkwidget
     dde-polkit-agent
+    qt5integration
     libgnome-keyring
     libsecret
   ];