diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix new file mode 100644 index 000000000000..850186953f63 --- /dev/null +++ b/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix @@ -0,0 +1,140 @@ +{ stdenv +, mkDerivation +, pkgconfig +, fetchFromGitHub +, deepin +, cmake +, extra-cmake-modules +, qtbase +, libxcb +, kglobalaccel +, kwindowsystem +, kcoreaddons +, kwin +, dtkcore +, gsettings-qt +, fontconfig +, deepin-desktop-schemas +, glib +, libXrender +, mtdev +, qttools +, deepin-gettext-tools +, kwayland +, qtx11extras +, qtquickcontrols2 +, epoxy +, qt5integration +, dde-session-ui +, dbus +, wrapGAppsHook +}: + +mkDerivation rec { + pname = "dde-kwin"; + version = "5.0.0"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "0bvkx9h5ygj46a0j76kfyq3gvk6zn4fx6clhrmcr40hbi2k33cbl"; + }; + + nativeBuildInputs = [ + cmake + deepin-gettext-tools + deepin.setupHook + extra-cmake-modules + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + deepin-desktop-schemas + dtkcore + epoxy + fontconfig + glib + gsettings-qt + kcoreaddons + kglobalaccel + kwayland + kwin + kwindowsystem + libXrender + libxcb + mtdev + qtbase + qtquickcontrols2 + qttools + qtx11extras + qt5integration + ]; + + # Need to add kwayland around: + # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14 + NIX_CFLAGS_COMPILE = "-I${kwayland.dev}/include/KF5"; + + cmakeFlags = [ + "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}" + ]; + + patches = [ + ./0001-dde-kwin.pc-make-paths-relative.patch + ./fix-paths.patch + ]; + + postPatch = '' + searchHardCodedPaths + + patchShebangs translate_ts2desktop.sh \ + translate_generation.sh \ + translate_desktop2ts.sh \ + plugins/kwin-xcb/plugin/translate_generation.sh + + fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert translate_desktop2ts.sh translate_ts2desktop.sh + + fixPath $out /etc/xdg configures/CMakeLists.txt deepin-wm-dbus/deepinwmfaker.cpp + + # TODO: Need environmental patch + fixPath /run/current-system/sw /usr/lib plugins/kwin-xcb/plugin/main.cpp + + substituteInPlace configures/kwin-wm-multitaskingview.desktop \ + --replace "dbus-send" "${dbus}/bin/dbus-send" + + fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-warning-dialog deepin-wm-dbus/deepinwmfaker.cpp + + # Correct qt plugin installation path to be within dde-kwin prefix. + substituteInPlace CMakeLists.txt \ + --subst-var-by plugin_path "$out/$qtPluginPrefix" + ''; + + postInstall = '' + # Correct invalid path in .pc + substituteInPlace $out/lib/pkgconfig/dde-kwin.pc \ + --replace "-L/usr/X11R6/lib64" "" + + chmod +x $out/bin/kwin_no_scale + ''; + + dontWrapQtApps = true; + + preFixup = '' + gappsWrapperArgs+=( + "''${qtWrapperArgs[@]}" + ) + ''; + + enableParallelBuilding = true; + + passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; }; + + meta = with stdenv.lib; { + description = "KWin configuration for Deepin Desktop Environment"; + homepage = "https://github.com/linuxdeepin/dde-kwin"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ romildo worldofpeace ]; + }; +} |