mirror of
https://github.com/hyprwm/hyprland-plugins.git
synced 2024-12-22 15:09:47 +01:00
98 lines
2.8 KiB
Nix
98 lines
2.8 KiB
Nix
{
|
|
description = "Official Hyprland Plugins";
|
|
|
|
inputs = {
|
|
hyprland.url = "github:hyprwm/Hyprland";
|
|
nixpkgs.follows = "hyprland/nixpkgs";
|
|
systems.follows = "hyprland/systems";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
hyprland,
|
|
nixpkgs,
|
|
systems,
|
|
...
|
|
}: let
|
|
inherit (nixpkgs) lib;
|
|
eachSystem = lib.genAttrs (import systems);
|
|
|
|
pkgsFor = eachSystem (system:
|
|
import nixpkgs {
|
|
localSystem.system = system;
|
|
overlays = [
|
|
self.overlays.hyprland-plugins
|
|
self.overlays.gcc14Stdenv
|
|
hyprland.overlays.hyprland-packages
|
|
];
|
|
});
|
|
in {
|
|
packages = eachSystem (system: {
|
|
inherit
|
|
(pkgsFor.${system}.hyprlandPlugins)
|
|
borders-plus-plus
|
|
csgo-vulkan-fix
|
|
hyprbars
|
|
hyprexpo
|
|
hyprtrails
|
|
hyprwinwrap
|
|
;
|
|
});
|
|
|
|
overlays = {
|
|
default = self.overlays.hyprland-plugins;
|
|
|
|
hyprland-plugins = final: prev: let
|
|
inherit (final) callPackage;
|
|
in {
|
|
hyprlandPlugins =
|
|
(prev.hyprlandPlugins
|
|
or {})
|
|
// {
|
|
borders-plus-plus = callPackage ./borders-plus-plus {};
|
|
csgo-vulkan-fix = callPackage ./csgo-vulkan-fix {};
|
|
hyprbars = callPackage ./hyprbars {};
|
|
hyprexpo = callPackage ./hyprexpo {};
|
|
hyprtrails = callPackage ./hyprtrails {};
|
|
hyprwinwrap = callPackage ./hyprwinwrap {};
|
|
};
|
|
};
|
|
|
|
# TODO: remove when https://github.com/NixOS/nixpkgs/pull/365776 lands in master
|
|
gcc14Stdenv = final: prev: {
|
|
hyprlandPlugins =
|
|
(prev.hyprlandPlugins or {})
|
|
// {
|
|
mkHyprlandPlugin = hyprland: args @ {pluginName, ...}:
|
|
hyprland.stdenv.mkDerivation (
|
|
args
|
|
// {
|
|
pname = pluginName;
|
|
nativeBuildInputs = [prev.pkg-config] ++ args.nativeBuildInputs or [];
|
|
buildInputs = [hyprland] ++ hyprland.buildInputs ++ (args.buildInputs or []);
|
|
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.";
|
|
};
|
|
}
|
|
);
|
|
};
|
|
};
|
|
};
|
|
|
|
checks = eachSystem (system: self.packages.${system});
|
|
|
|
devShells = eachSystem (system:
|
|
with pkgsFor.${system}; {
|
|
default = mkShell.override {stdenv = gcc14Stdenv;} {
|
|
name = "hyprland-plugins";
|
|
buildInputs = [hyprland.packages.${system}.hyprland];
|
|
inputsFrom = [hyprland.packages.${system}.hyprland];
|
|
};
|
|
});
|
|
};
|
|
}
|