diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix new file mode 100644 index 000000000000..f8742673f3d7 --- /dev/null +++ b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix @@ -0,0 +1,51 @@ +{ lib +, callPackage +, pkg-config +, gcc13Stdenv +, hyprland +}: +let + mkHyprlandPlugin = + args@{ pluginName, ... }: + gcc13Stdenv.mkDerivation (args // { + pname = "${pluginName}"; + nativeBuildInputs = [ pkg-config ] ++ args.nativeBuildInputs or [ ]; + buildInputs = [ hyprland ] + ++ hyprland.buildInputs + ++ (args.buildInputs or [ ]); + meta = args.meta // { + description = (args.meta.description or ""); + longDescription = (args.meta.lonqDescription or "") + + "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options."; + }; + }); + + plugins = { + hy3 = { fetchFromGitHub, cmake, hyprland }: + mkHyprlandPlugin rec { + pluginName = "hy3"; + version = "0.32.0"; + + src = fetchFromGitHub { + owner = "outfoxxed"; + repo = "hy3"; + rev = "hl${version}"; + hash = "sha256-j49bEOLjBa1CH2gTwM+A2Edrw/GspE2m8q1teAn6SuQ="; + }; + + nativeBuildInputs = [ cmake ]; + + dontStrip = true; + + meta = with lib; { + homepage = "https://github.com/outfoxxed/hy3"; + description = "Hyprland plugin for an i3 / sway like manual tiling layout"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = [ maintainers.aacebedo ]; + }; + }; + }; +in +lib.mapAttrs (name: plugin: callPackage plugin { }) plugins + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ebf23d7bcd2a..ffe6bf488f88 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5748,6 +5748,8 @@ with pkgs; hyprshade = python311Packages.callPackage ../applications/window-managers/hyprwm/hyprshade { }; + hyprlandPlugins = recurseIntoAttrs (callPackage ../applications/window-managers/hyprwm/hyprland/plugins.nix { }); + hysteria = callPackage ../tools/networking/hysteria { }; hyx = callPackage ../tools/text/hyx { };