mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-08 08:25:58 +01:00
Mihai Fufezan
96e5be2449
Build using submodules instead of patching the build process and using Nix derivations of the subprojects. From this commit on, you'll have to change the Hyprland flake url to `git+https://github.com/hyprwm/Hyprland?submodules=1`
105 lines
2.8 KiB
Nix
105 lines
2.8 KiB
Nix
{
|
|
description = "Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
# <https://github.com/nix-systems/nix-systems>
|
|
systems.url = "github:nix-systems/default-linux";
|
|
|
|
hyprcursor = {
|
|
url = "github:hyprwm/hyprcursor";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.systems.follows = "systems";
|
|
inputs.hyprlang.follows = "hyprlang";
|
|
};
|
|
|
|
hyprlang = {
|
|
url = "github:hyprwm/hyprlang";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.systems.follows = "systems";
|
|
};
|
|
|
|
hyprwayland-scanner = {
|
|
url = "github:hyprwm/hyprwayland-scanner";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.systems.follows = "systems";
|
|
};
|
|
|
|
xdph = {
|
|
url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
inputs.systems.follows = "systems";
|
|
inputs.hyprlang.follows = "hyprlang";
|
|
};
|
|
};
|
|
|
|
outputs = inputs @ {
|
|
self,
|
|
nixpkgs,
|
|
systems,
|
|
...
|
|
}: let
|
|
inherit (nixpkgs) lib;
|
|
eachSystem = lib.genAttrs (import systems);
|
|
pkgsFor = eachSystem (system:
|
|
import nixpkgs {
|
|
localSystem = system;
|
|
overlays = with self.overlays; [
|
|
hyprland-packages
|
|
hyprland-extras
|
|
];
|
|
});
|
|
in {
|
|
overlays = import ./nix/overlays.nix {inherit self lib inputs;};
|
|
|
|
checks = eachSystem (system:
|
|
(lib.filterAttrs
|
|
(n: _: (lib.hasPrefix "hyprland" n) && !(lib.hasSuffix "debug" n))
|
|
self.packages.${system})
|
|
// {
|
|
inherit (self.packages.${system}) xdg-desktop-portal-hyprland;
|
|
});
|
|
|
|
packages = eachSystem (system: {
|
|
default = self.packages.${system}.hyprland;
|
|
inherit
|
|
(pkgsFor.${system})
|
|
# hyprland-packages
|
|
|
|
hyprland
|
|
hyprland-debug
|
|
hyprland-legacy-renderer
|
|
hyprland-unwrapped
|
|
# hyprland-extras
|
|
|
|
xdg-desktop-portal-hyprland
|
|
# dependencies
|
|
|
|
hyprland-protocols
|
|
;
|
|
});
|
|
|
|
devShells = eachSystem (system: {
|
|
default =
|
|
pkgsFor.${system}.mkShell.override {
|
|
stdenv = pkgsFor.${system}.gcc13Stdenv;
|
|
} {
|
|
name = "hyprland-shell";
|
|
nativeBuildInputs = with pkgsFor.${system}; [expat libxml2];
|
|
hardeningDisable = ["fortify"];
|
|
inputsFrom = [pkgsFor.${system}.hyprland];
|
|
};
|
|
});
|
|
|
|
formatter = eachSystem (system: nixpkgs.legacyPackages.${system}.alejandra);
|
|
|
|
nixosModules.default = import ./nix/module.nix inputs;
|
|
homeManagerModules.default = import ./nix/hm-module.nix self;
|
|
};
|
|
|
|
nixConfig = {
|
|
extra-substituters = ["https://hyprland.cachix.org"];
|
|
extra-trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
|
};
|
|
}
|