Last active
August 14, 2025 20:26
-
-
Save BBArikL/b389c4592d636380523e03ac423b77b3 to your computer and use it in GitHub Desktop.
wallpaper-engine-kde-plugin on NixOS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { config, lib, pkgs, ...}: | |
| let | |
| # References: https://github.com/xerhaxs/nixos/blob/main/nixosModules/pkgs/wallpaper-engine-kde-plugin.nix and https://discourse.nixos.org/t/wallpaper-engine-on-nixos-wallpaper-engine-kde-plugin/19744/25 | |
| glslang-submodule = with pkgs; stdenv.mkDerivation { | |
| name = "glslang"; | |
| installPhase = '' | |
| mkdir -p $out | |
| ''; | |
| src = fetchFromGitHub { | |
| owner = "KhronosGroup"; | |
| repo = "glslang"; | |
| rev = "c34bb3b6c55f6ab084124ad964be95a699700d34"; | |
| sha256 = "IMROcny+b5CpmzEfvKBYDB0QYYvqC5bq3n1S4EQ6sXc="; | |
| }; | |
| }; | |
| wallpaper-engine-kde-plugin = with pkgs; stdenv.mkDerivation rec { | |
| pname = "wallpaperEngineKde"; | |
| version = "96230de92f1715d3ccc5b9d50906e6a73812a00a"; | |
| src = fetchFromGitHub { | |
| owner = "Jelgnum"; | |
| repo = "wallpaper-engine-kde-plugin"; | |
| rev = version; | |
| hash = "sha256-vkWEGlDQpfJ3fAimJHZs+aX6dh/fLHSRy2tLEsgu/JU="; | |
| fetchSubmodules = true; | |
| }; | |
| nativeBuildInputs = [ | |
| cmake | |
| kdePackages.extra-cmake-modules | |
| glslang-submodule | |
| pkg-config | |
| gst_all_1.gst-libav | |
| shaderc | |
| ninja | |
| ]; | |
| buildInputs = [ | |
| mpv | |
| lz4 | |
| vulkan-headers | |
| vulkan-tools | |
| vulkan-loader | |
| ] | |
| ++ (with kdePackages; with qt6Packages; [ | |
| qtbase | |
| qt6.full | |
| kpackage | |
| kdeclarative | |
| libplasma | |
| qtwebsockets | |
| qtwebengine | |
| qtwebchannel | |
| qtmultimedia | |
| qtdeclarative | |
| ]) | |
| ++ [(python3.withPackages (python-pkgs: [ python-pkgs.websockets ]))]; | |
| cmakeFlags = [ "-DUSE_PLASMAPKG=OFF" ]; | |
| dontWrapQtApps = true; | |
| postPatch = '' | |
| rm -rf src/backend_scene/third_party/glslang | |
| ln -s ${glslang-submodule.src} src/backend_scene/third_party/glslang | |
| ''; | |
| #Optional informations | |
| meta = with lib; { | |
| description = "Wallpaper Engine KDE plasma plugin"; | |
| homepage = "https://github.com/Jelgnum/wallpaper-engine-kde-plugin"; | |
| license = licenses.gpl2Plus; | |
| platforms = platforms.linux; | |
| }; | |
| }; | |
| in | |
| { | |
| options.nixos = { | |
| pkgs.wallpaper-engine-kde-plugin = { | |
| enable = lib.mkOption { | |
| type = lib.types.bool; | |
| default = false; | |
| example = true; | |
| description = "Enable wallpaper-engine-kde-plugin."; | |
| }; | |
| }; | |
| }; | |
| config = lib.mkIf (config.nixos.pkgs.wallpaper-engine-kde-plugin.enable) { | |
| environment.systemPackages = with pkgs; [ | |
| wallpaper-engine-kde-plugin | |
| kdePackages.qtwebsockets | |
| kdePackages.qtwebchannel | |
| (python3.withPackages (python-pkgs: [ python-pkgs.websockets ])) | |
| ]; | |
| system.activationScripts = { | |
| wallpaper-engine-kde-plugin.text = '' | |
| wallpaperenginetarget=/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde | |
| mkdir -p /home/${builtins.head (builtins.attrNames config.users.users)}/.local/share/plasma/wallpapers | |
| chown -R ${builtins.head (builtins.attrNames config.users.users)}:users /home/${builtins.head (builtins.attrNames config.users.users)}/.local/share/plasma | |
| if [ ! -e /home/${builtins.head (builtins.attrNames config.users.users)}/.local$wallpaperenginetarget ]; then | |
| ln -sf ${wallpaper-engine-kde-plugin}$wallpaperenginetarget /home/${builtins.head (builtins.attrNames config.users.users)}/.local$wallpaperenginetarget | |
| fi; | |
| ''; | |
| }; | |
| }; | |
| } |
Author
Just a quick heads up. If you plan on upgrading from nixos stable to unstable and you still have this file, disable it! Something changed between the versions of plasma that makes it coredumps over and over again. You better use the one in the unstable nixpkgs repo.
Author
Well the current unstable version (from the nixpkgs repo) does not work for me yet.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for making this package!
I indeed needed this as well to make python run properly. Seems like video wallpapers run (after installing qtmultimediate) while all scene wallpapers have a black screen. Is that an issue with the packaging or the plugin itself?
wallpaper-engine-kde-pluginseems to support scene wallpapers so I'm not sure if I'm just doing something wrong