140 lines
3 KiB
Nix
140 lines
3 KiB
Nix
{ 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 ];
|
|
};
|
|
}
|