{ description = "Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; wlroots = { url = "gitlab:wlroots/wlroots?host=gitlab.freedesktop.org"; flake = false; }; }; outputs = inputs @ { self, nixpkgs, ... }: let inherit (nixpkgs) lib; genSystems = lib.genAttrs [ # Add more systems if they are supported "x86_64-linux" ]; pkgsFor = nixpkgs.legacyPackages; mkDate = longDate: (lib.concatStringsSep "-" [ (__substring 0 4 longDate) (__substring 4 2 longDate) (__substring 6 2 longDate) ]); in { overlays.default = _: prev: rec { wlroots-hyprland = prev.wlroots.overrideAttrs (__: { version = mkDate (inputs.wlroots.lastModifiedDate or "19700101"); src = inputs.wlroots; }); hyprland = prev.callPackage ./nix/default.nix { stdenv = prev.gcc12Stdenv; version = "0.10.0beta" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")); wlroots = wlroots-hyprland; }; hyprland-debug = hyprland.override {debug = true;}; waybar-hyprland = prev.waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; }); }; packages = genSystems (system: (self.overlays.default null pkgsFor.${system}) // { default = self.packages.${system}.hyprland; }); devShells = genSystems (system: { default = pkgsFor.${system}.mkShell.override {stdenv = pkgsFor.${system}.gcc12Stdenv;} { name = "hyprland-shell"; inputsFrom = [ self.packages.${system}.wlroots-hyprland self.packages.${system}.hyprland ]; }; }); formatter = genSystems (system: pkgsFor.${system}.alejandra); nixosModules.default = import ./nix/module.nix self; homeManagerModules.default = import ./nix/hm-module.nix self; overlay = throw "Hyprland: .overlay output is deprecated, please use the .overlays.default output"; }; }