From 1e788edb892a8c6c00b3669f06db34e64e511352 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:40:19 +0530 Subject: [PATCH] hyprlandPlugins.mkHyprlandPlugin: support finalAttrs through lib.extendMkDerivation --- .../hyprwm/hyprland-plugins/default.nix | 34 +++++++++++++------ .../hyprwm/hyprland-plugins/hy3.nix | 6 ++-- .../hyprwm/hyprland-plugins/hycov.nix | 7 ++-- .../hyprland-plugins/hypr-dynamic-cursors.nix | 3 +- .../hyprwm/hyprland-plugins/hyprgrass.nix | 3 +- .../hyprland-plugins/hyprland-plugins.nix | 4 +-- .../hyprwm/hyprland-plugins/hyprspace.nix | 3 +- .../hyprwm/hyprland-plugins/hyprsplit.nix | 8 ++--- 8 files changed, 36 insertions(+), 32 deletions(-) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix index 8cd3353bfcd1..1219059e4aad 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix @@ -3,25 +3,37 @@ lib, callPackage, pkg-config, -}: + hyprland, +}@topLevelArgs: let - mkHyprlandPlugin = - hyprland: - args@{ pluginName, ... }: - hyprland.stdenv.mkDerivation ( - args - // { + + mkHyprlandPlugin = lib.extendMkDerivation { + constructDrv = topLevelArgs.hyprland.stdenv.mkDerivation; + + extendDrvArgs = + finalAttrs: + { + pluginName ? "", + nativeBuildInputs ? [ ], + buildInputs ? [ ], + hyprland ? topLevelArgs.hyprland, + ... + }@args: + + { pname = "${pluginName}"; - nativeBuildInputs = [ pkg-config ] ++ args.nativeBuildInputs or [ ]; - buildInputs = [ hyprland ] ++ hyprland.buildInputs ++ (args.buildInputs or [ ]); + nativeBuildInputs = [ pkg-config ] ++ nativeBuildInputs; + buildInputs = [ hyprland ] ++ hyprland.buildInputs ++ buildInputs; meta = args.meta // { description = args.meta.description or ""; longDescription = (args.meta.longDescription or "") + "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options."; + + platforms = args.meta.platforms or hyprland.meta.platforms or [ ]; }; - } - ); + }; + }; plugins = lib.mergeAttrsList [ { hy3 = import ./hy3.nix; } diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix index ee519e9efb36..ce023efccb85 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix @@ -6,14 +6,14 @@ mkHyprlandPlugin, nix-update-script, }: -mkHyprlandPlugin hyprland rec { +mkHyprlandPlugin (finalAttrs: { pluginName = "hy3"; version = "hl0.50.0"; src = fetchFromGitHub { owner = "outfoxxed"; repo = "hy3"; - tag = version; + tag = finalAttrs.version; hash = "sha256-1BTJSqkj+lkIry27HuqA5UB7uRqAUvGT7LAUDQhKjU0="; }; @@ -33,4 +33,4 @@ mkHyprlandPlugin hyprland rec { johnrtitor ]; }; -} +}) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix index 38bcd12a7ffa..51da0e82573e 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hycov.nix @@ -1,20 +1,19 @@ { lib, mkHyprlandPlugin, - hyprland, cmake, fetchFromGitHub, nix-update-script, }: -mkHyprlandPlugin hyprland rec { +mkHyprlandPlugin (finalAttrs: { pluginName = "hycov"; version = "0.41.2.1"; src = fetchFromGitHub { owner = "DreamMaoMao"; repo = "hycov"; - rev = version; + tag = finalAttrs.version; hash = "sha256-NRnxbkuiq1rQ+uauo7D+CEe73iGqxsWxTQa+1SEPnXQ="; }; @@ -30,4 +29,4 @@ mkHyprlandPlugin hyprland rec { platforms = lib.platforms.linux; broken = true; # Doesn't work after Hyprland v0.41.2 https://gitee.com/DreamMaoMao/hycov/issues/IANYC8#note_31512295_link }; -} +}) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix index 27232ae5de20..acaaad39363c 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hypr-dynamic-cursors.nix @@ -2,11 +2,10 @@ lib, mkHyprlandPlugin, fetchFromGitHub, - hyprland, nix-update-script, }: -mkHyprlandPlugin hyprland { +mkHyprlandPlugin { pluginName = "hypr-dynamic-cursors"; version = "0-unstable-2025-09-01"; diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix index 185525befa6f..b1bf74e06722 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprgrass.nix @@ -1,7 +1,6 @@ { lib, mkHyprlandPlugin, - hyprland, fetchFromGitHub, cmake, doctest, @@ -11,7 +10,7 @@ nix-update-script, }: -mkHyprlandPlugin hyprland { +mkHyprlandPlugin { pluginName = "hyprgrass"; version = "0.8.2-unstable-2025-05-08"; diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix index 87a26aa42e7c..a6500e797698 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix @@ -10,7 +10,6 @@ let lib, cmake, fetchFromGitHub, - hyprland, mkHyprlandPlugin, }: let @@ -23,7 +22,7 @@ let hash = "sha256-XJJ+frO4NOxVkoSGc1Mag8ESumzx2FmVRspOgFlMqF8="; }; in - mkHyprlandPlugin hyprland { + mkHyprlandPlugin { pluginName = name; inherit version; @@ -34,7 +33,6 @@ let description = "Hyprland ${description} plugin"; license = lib.licenses.bsd3; teams = [ lib.teams.hyprland ]; - inherit (hyprland.meta) platforms; }; } ) diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix index a8bd1bcae619..773aa38d0e53 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprspace.nix @@ -1,12 +1,11 @@ { lib, fetchFromGitHub, - hyprland, mkHyprlandPlugin, nix-update-script, }: -mkHyprlandPlugin hyprland { +mkHyprlandPlugin { pluginName = "hyprspace"; version = "0-unstable-2025-07-16"; diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprsplit.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprsplit.nix index 06b0f1e10ce7..241e77e17eb1 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprsplit.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprsplit.nix @@ -2,19 +2,18 @@ lib, meson, fetchFromGitHub, - hyprland, ninja, mkHyprlandPlugin, nix-update-script, }: -mkHyprlandPlugin hyprland rec { +mkHyprlandPlugin (finalAttrs: { pluginName = "hyprsplit"; version = "0.50.1"; src = fetchFromGitHub { owner = "shezdy"; repo = "hyprsplit"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-D0zfdUJXBRnNMmv/5qW+X4FJJ3/+t7yQmwJFkBuEgck="; }; @@ -29,9 +28,8 @@ mkHyprlandPlugin hyprland rec { homepage = "https://github.com/shezdy/hyprsplit"; description = "Hyprland plugin for awesome / dwm like workspaces"; license = lib.licenses.bsd3; - inherit (hyprland.meta) platforms; maintainers = with lib.maintainers; [ aacebedo ]; }; -} +})