Go to file
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
.github/workflows CI: use nix flake check instead of matrix of packages 2024-01-28 23:52:16 +02:00
borders-plus-plus treewide: add CMake files 2024-05-05 16:36:13 +03:00
csgo-vulkan-fix all: chase hyprland 2024-06-08 11:12:34 +02:00
hyprbars all: chase hyprland 2024-06-08 11:12:34 +02:00
hyprexpo expo: add option for gesture fingers (#174) 2024-05-30 19:58:40 +02:00
hyprtrails all: chase hyprland 2024-05-08 13:48:33 +01:00
hyprwinwrap all: chase hyprland 2024-06-08 11:12:34 +02:00
.clang-format Add clang-format 2023-02-28 12:22:29 +00:00
.gitignore flake: overlay: move packages to `hyprlandPlugins` namespace (#180) 2024-06-11 16:05:05 +03:00
LICENSE Initial commit 2023-02-27 14:01:11 +00:00
README.md hyprexpo: add 2024-04-03 19:14:38 +01:00
flake.lock flake: overlay: move packages to `hyprlandPlugins` namespace (#180) 2024-06-11 16:05:05 +03:00
flake.nix flake: overlay: move packages to `hyprlandPlugins` namespace (#180) 2024-06-11 16:05:05 +03:00
hyprload.toml hyprload: add hyprwinwrap manifest 2023-11-25 01:48:36 +00:00
hyprpm.toml hyprpm: add pin for 0.41.0 2024-06-10 22:35:39 +02:00

README.md

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.