about summary refs log tree commit diff
path: root/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix')
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
new file mode 100644
index 0000000000000..f994b19175209
--- /dev/null
+++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/default.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  callPackage,
+  pkg-config,
+  stdenv,
+  hyprland,
+}:
+let
+  mkHyprlandPlugin =
+    hyprland:
+    args@{ pluginName, ... }:
+    stdenv.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.longDescription or "")
+            + "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options.";
+        };
+      }
+    );
+
+  plugins = lib.mergeAttrsList [
+    { hy3 = import ./hy3.nix; }
+    (import ./hyprland-plugins.nix)
+  ];
+in
+(lib.mapAttrs (name: plugin: callPackage plugin { inherit mkHyprlandPlugin; }) plugins)
+// {
+  inherit mkHyprlandPlugin;
+}