about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorrewine <luhongxu@deepin.org>2023-01-12 15:31:19 +0800
committerrewine <lhongxu@outlook.com>2023-04-23 18:08:11 +0800
commita89f0a0e0734b33e2d153f5e6c5099dfd9223eb1 (patch)
tree6074e5d816cd90df904deba7e77e221ee5054649 /pkgs/desktops
parentf423f57ba63782c3b13af0c3100f7863dc8c1e61 (diff)
downloadnixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar.gz
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar.bz2
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar.lz
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar.xz
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.tar.zst
nixlib-a89f0a0e0734b33e2d153f5e6c5099dfd9223eb1.zip
deepin.deepin-kwin: init at 5.24.3-deepin.1.9
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/deepin/core/deepin-kwin/default.nix120
-rw-r--r--pkgs/desktops/deepin/default.nix1
2 files changed, 121 insertions, 0 deletions
diff --git a/pkgs/desktops/deepin/core/deepin-kwin/default.nix b/pkgs/desktops/deepin/core/deepin-kwin/default.nix
new file mode 100644
index 000000000000..456f20b51906
--- /dev/null
+++ b/pkgs/desktops/deepin/core/deepin-kwin/default.nix
@@ -0,0 +1,120 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wayland
+, dwayland
+, qtbase
+, qttools
+, qtx11extras
+, wrapQtAppsHook
+, extra-cmake-modules
+, gsettings-qt
+, libepoxy
+, kconfig
+, kconfigwidgets
+, kcoreaddons
+, kcrash
+, kdbusaddons
+, kiconthemes
+, kglobalaccel
+, kidletime
+, knotifications
+, kpackage
+, plasma-framework
+, kcmutils
+, knewstuff
+, kdecoration
+, kscreenlocker
+, breeze-qt5
+, libinput
+, mesa
+, lcms2
+, xorg
+}:
+
+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
+  */
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = "98c9085670938937e2a1ce964f6acddc5c1d6eb5";
+    sha256 = "sha256-/hgDuaDrpwAQsMIoaS8pGBJwWfJSrq6Yjic3a60ITtM=";
+  };
+
+  # Avoid using absolute path to distinguish applications
+  postPatch = ''
+    substituteInPlace src/effects/screenshot/screenshotdbusinterface1.cpp \
+      --replace 'file.readAll().startsWith(DEFINE_DDE_DOCK_PATH"dde-dock")' 'file.readAll().contains("dde-dock")'
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    extra-cmake-modules
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtbase
+    qttools
+    qtx11extras
+    wayland
+    dwayland
+    libepoxy
+    gsettings-qt
+
+    kconfig
+    kconfigwidgets
+    kcoreaddons
+    kcrash
+    kdbusaddons
+    kiconthemes
+
+    kglobalaccel
+    kidletime
+    knotifications
+    kpackage
+    plasma-framework
+    kcmutils
+    knewstuff
+    kdecoration
+    kscreenlocker
+
+    breeze-qt5
+    libinput
+    mesa
+    lcms2
+
+    xorg.libxcb
+    xorg.libXdmcp
+    xorg.libXcursor
+    xorg.xcbutilcursor
+    xorg.libXtst
+  ];
+
+  cmakeFlags = [
+    "-DKWIN_BUILD_RUNNERS=OFF"
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  meta = with lib; {
+    description = "Fork of kwin, an easy to use, but flexible, composited Window Manager";
+    homepage = "https://github.com/linuxdeepin/deepin-kwin";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 0b4bffe38438..2f7eb9e32908 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -23,6 +23,7 @@ let
     util-dfm = callPackage ./library/util-dfm { };
 
     #### CORE
+    deepin-kwin = callPackage ./core/deepin-kwin { };
     dde-app-services = callPackage ./core/dde-app-services { };
     dde-control-center = callPackage ./core/dde-control-center { };
     dde-calendar = callPackage ./core/dde-calendar { };