Jacob Birkett 151102b7d7
flake: overlay: move packages to hyprlandPlugins namespace (#180)
* flake: inputs: follow hyprland/nixpkgs

The reason to do this instead of `inputs.hyprland.nixpkgs` or inheriting
that attribute is for the semantic meaning of having it in the
`flake.lock`. This makes it obvious that it can be overridden.

* flake: overlay: adopt nixpkgs hyprlandPlugins

I have introduced the `hyprlandPlugins` namespace to this flake's
default overlay. Derivations are moved there, in-line with Nixpkgs.

I recommend that other Hyprland plugin flake authors use the same
pattern:

```nix
overlays = {
  default = self.overlays.your-plugin-name;
  your-plugin-name = final: prev: {
    hyprlandPlugins = prev.hyprland-plugins or {} // {
      your-plugin-name = final.callPackage ./nix/default.nix {};
    };
  };
};
```

Your flake's packages output should also make use of this overlay via a
manual `nixpkgs` import, and inherit the outputs from
`pkgs.hyprlandPlugins`. This will ensure that the flake's dependency
graph is properly reflected in the derivation outputs.

* gitignore: add nix build results

* flake: inputs: update all
2024-06-11 16:05:05 +03:00
2024-06-08 11:12:34 +02:00
2024-06-08 11:12:34 +02:00
2024-05-08 13:48:33 +01:00
2024-06-08 11:12:34 +02:00
2024-06-10 22:35:39 +02:00
2024-04-03 19:14:38 +01:00

hyprland-plugins

This repo houses official plugins for Hyprland.

Important

hyprland-plugins only officially supports installation via hyprpm. hyprland-plugins follows hyprland-git and requires you to be on hyprland-git or tagged >= v0.33.1.

Plugin list

  • borders-plus-plus -> adds one or two additional borders to windows
  • csgo-vulkan-fix -> fixes custom resolutions on CS:GO with -vulkan
  • hyprbars -> adds title bars to windows
  • hyprexpo -> adds an expo-like workspace overview
  • hyprtrails -> adds smooth trails behind moving windows
  • hyprwinwrap -> clone of xwinwrap, allows you to put any app as a wallpaper

Nix

To use these plugins, it's recommended that you are already using the Hyprland flake. First, add this flake to your inputs:

inputs = {
  # ...
  hyprland.url = "github:hyprwm/Hyprland";
  hyprland-plugins = {
    url = "github:hyprwm/hyprland-plugins";
    inputs.hyprland.follows = "hyprland";
  };

  # ...
};

The inputs.hyprland.follows guarantees the plugins will always be built using your locked Hyprland version, thus you will never get version mismatches that lead to errors.

After that's done, you can use the plugins with the Home Manager module like this:

{inputs, pkgs, ...}: {
  wayland.windowManager.hyprland = {
    enable = true;
    # ...
    plugins = [
      inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars
      # ...
    ];
  };
}

Contributing

Feel free to open issues and MRs with fixes.

If you want your plugin added here, contact vaxry beforehand.

Description
Official plugins for Hyprland
Readme BSD-3-Clause 4.1 MiB
Languages
C++ 90.4%
Meson 3.7%
Nix 2.4%
CMake 2%
Makefile 1.5%