133 lines
3.4 KiB
Nix
133 lines
3.4 KiB
Nix
{ lib, pkgs, inputs ? null, ... }:
|
|
|
|
pkgs.kdePackages.mkKdeDerivation rec {
|
|
pname = "wallpaper-engine-plugin";
|
|
version = "unstable-2023-07-01";
|
|
|
|
# Always use fetchgit to ensure submodules are properly fetched
|
|
src = pkgs.fetchgit {
|
|
url = "https://github.com/catsout/wallpaper-engine-kde-plugin.git";
|
|
rev = "9e60b364e268814a1a778549c579ad45a9b9c7bb";
|
|
hash = "sha256-zEpELmuK+EvQ1HIWxCSAGyJAjmGgp0yqjtNuC2DTES8=";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
extraNativeBuildInputs = [
|
|
pkgs.kdePackages.kpackage
|
|
pkgs.pkg-config
|
|
(pkgs.python3.withPackages (ps: with ps; [ websockets ]))
|
|
];
|
|
|
|
extraBuildInputs = [
|
|
pkgs.kdePackages.extra-cmake-modules
|
|
pkgs.kdePackages.libplasma
|
|
pkgs.lz4
|
|
pkgs.mpv
|
|
pkgs.lua
|
|
pkgs.libass
|
|
pkgs.libsysprof-capture
|
|
pkgs.fribidi
|
|
pkgs.ffmpeg
|
|
pkgs.libplacebo
|
|
pkgs.libunwind
|
|
pkgs.shaderc
|
|
pkgs.lcms2
|
|
pkgs.libdovi
|
|
pkgs.libdvdnav
|
|
pkgs.libdvdread
|
|
pkgs.vulkan-headers
|
|
pkgs.vulkan-loader
|
|
pkgs.spirv-tools
|
|
pkgs.gst_all_1.gstreamer
|
|
pkgs.gst_all_1.gst-plugins-base
|
|
pkgs.gst_all_1.gst-plugins-good
|
|
pkgs.gst_all_1.gst-plugins-bad
|
|
pkgs.gst_all_1.gst-plugins-ugly
|
|
pkgs.gst_all_1.gst-libav
|
|
pkgs.mujs
|
|
# Additional dependencies for scene backend
|
|
pkgs.libGL
|
|
pkgs.mesa
|
|
pkgs.eigen
|
|
pkgs.nlohmann_json
|
|
pkgs.libarchive
|
|
pkgs.libbluray
|
|
pkgs.rubberband
|
|
pkgs.libuchardet
|
|
pkgs.zimg
|
|
pkgs.alsa-lib
|
|
pkgs.openal
|
|
pkgs.pipewire
|
|
pkgs.libpulseaudio
|
|
pkgs.libcaca
|
|
pkgs.libdisplay-info
|
|
pkgs.libgbm
|
|
pkgs.xorg.libXScrnSaver
|
|
pkgs.xorg.libXpresent
|
|
pkgs.xorg.libXv
|
|
pkgs.xorg.libXext
|
|
pkgs.xorg.libXinerama
|
|
pkgs.xorg.libXrandr
|
|
pkgs.libdrm
|
|
pkgs.wayland
|
|
pkgs.wayland-protocols
|
|
pkgs.jack2
|
|
pkgs.libsndfile
|
|
pkgs.libsamplerate
|
|
pkgs.libvorbis
|
|
pkgs.flac
|
|
pkgs.libopus
|
|
pkgs.libmad
|
|
pkgs.libmodplug
|
|
pkgs.speex
|
|
pkgs.libtheora
|
|
pkgs.libvpx
|
|
pkgs.x264
|
|
pkgs.x265
|
|
pkgs.libaom
|
|
pkgs.dav1d
|
|
pkgs.svt-av1
|
|
pkgs.nv-codec-headers-12
|
|
pkgs.libva
|
|
pkgs.libvdpau
|
|
];
|
|
|
|
# Apply Qt6 compatibility fixes
|
|
postPatch = ''
|
|
# Fix Qt6 deprecation warnings in MouseGrabber.cpp
|
|
sed -i 's|event->localPos()|event->position()|g' src/MouseGrabber.cpp
|
|
sed -i 's|event->screenPos()|event->globalPosition()|g' src/MouseGrabber.cpp
|
|
sed -i 's|event->posF()|event->position()|g' src/MouseGrabber.cpp
|
|
|
|
# Fix QMouseEvent and QHoverEvent constructors for Qt6 (cast device to QPointingDevice*)
|
|
sed -i 's|event->modifiers());|event->modifiers(), static_cast<const QPointingDevice*>(event->device()));|g' src/MouseGrabber.cpp
|
|
|
|
# Fix Qt6 deprecation warning in qthelper.hpp
|
|
sed -i 's|v.type()|v.metaType().id()|g' src/backend_mpv/qthelper.hpp
|
|
'';
|
|
|
|
cmakeFlags = [
|
|
"-DQt6_DIR=${pkgs.kdePackages.qtbase}/lib/cmake/Qt6"
|
|
"-DUSE_PLASMAPKG=OFF"
|
|
"-DQT_MAJOR_VERSION=6"
|
|
"-DBUILD_QML=ON"
|
|
"-DBUILD_SCENE=ON"
|
|
];
|
|
|
|
dontWrapQtApps = true;
|
|
|
|
postInstall = ''
|
|
cd $out/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde
|
|
chmod +x ./contents/pyext.py
|
|
patchShebangs --build ./contents/pyext.py
|
|
cd -
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "KDE wallpaper plugin integrating Wallpaper Engine";
|
|
homepage = "https://github.com/catsout/wallpaper-engine-kde-plugin";
|
|
license = licenses.gpl2Plus;
|
|
platforms = platforms.linux;
|
|
maintainers = [];
|
|
};
|
|
} |