diff --git a/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix new file mode 100644 index 000000000000..a56ebf1579b1 --- /dev/null +++ b/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/kzones.nix @@ -0,0 +1,40 @@ +{ lib, mkDerivation, fetchFromGitHub +, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }: + +mkDerivation rec { + pname = "kzones"; + version = "0.3"; + + src = fetchFromGitHub { + owner = "gerritdevriese"; + repo = "kzones"; + rev = "v${version}"; + sha256 = "sha256-o7ItUHPayR0wnySssWvtVAaMRa9A1m778FY500hXHXQ="; + }; + + buildInputs = [ + kcoreaddons kwindowsystem plasma-framework systemsettings + ]; + + dontBuild = true; + + # 1. --global still installs to $HOME/.local/share so we use --packageroot + # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually + installPhase = '' + runHook preInstall + + plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts + install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-kzones.desktop + + runHook postInstall + ''; + + meta = with lib; { + description = "KWin Script for snapping windows into zones"; + maintainers = with maintainers; [ matthiasbeyer ]; + license = licenses.gpl3Plus; + inherit (src.meta) homepage; + inherit (kwindowsystem.meta) platforms; + }; +} + diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix index cb6052026290..09027d368083 100644 --- a/pkgs/desktops/plasma-5/default.nix +++ b/pkgs/desktops/plasma-5/default.nix @@ -162,6 +162,7 @@ let krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { }; krunner-ssh = callPackage ./3rdparty/addons/krunner-ssh.nix { }; krunner-symbols = callPackage ./3rdparty/addons/krunner-symbols.nix { }; + kzones = callPackage ./3rdparty/kwin/scripts/kzones.nix { }; lightly = callPackage ./3rdparty/lightly { }; parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { }; };