NUR support

The direct flake remains the primary interface. This repository also provides a root default.nix accepting a caller-supplied pkgs, suitable for NUR and ordinary Nix imports. It preserves the caller's Nixpkgs configuration and unfree policy.

The proposed NUR namespace is nix-forge. Registration has not been submitted. Until NUR accepts it, use the direct flake or import this repository yourself.

let
  pkgs = import nixpkgs { system = "x86_64-linux"; };
  personal = import nixpkgs-personal { inherit pkgs; };
in personal.bibata-cursors-hyprcursor

After registration, the equivalent NUR attribute will be nur.repos.nix-forge.bibata-cursors-hyprcursor. For an explicit NUR import:

let
  pkgs = import nixpkgs { system = "x86_64-linux"; };
  nurPackages = import nur { inherit pkgs; };
in nurPackages.repos.nix-forge.bibata-cursors-hyprcursor

Here nixpkgs, nixpkgs-personal, and nur are pinned source paths or flake inputs supplied by the consumer. NUR membership does not make packages available on unsupported platforms, audit their security, or grant redistribution permission. Its search may omit unfree and macOS-only packages. The package catalog is the collection's full inventory.

Repository contents and licensing

NUR's submission checklist explicitly accommodates unfree and prebuilt packages with accurate license and source-provenance metadata. Its MIT declaration applies to copyrightable files committed to the repository, except built derivations and patches. It is broader than a declaration about .nix files alone.

The root MIT license covers this repository's original packaging code, scripts, documentation and independently drawn artwork. The three bundled utilities and the vendored Noctalia expression have their own retained MIT notices. Patches retain their applicable upstream terms. Downloaded applications, fonts, skills and artwork retain their separate licenses; they are not relicensed by the root MIT notice. Review any new third-party file before adding it to Git.

NUR-combined copies the fetched repository tree, including committed documentation and assets. Hiding an attribute from default.nix does not remove its files from this mirror. This source mirroring is distinct from distributing every application or font fetched by the recipes. Keep vendor payloads, private captures and local build results outside Git.

Joining NUR does not change the hosted-build and cache policy. The inspected NUR workflows publish recipe sources and search metadata, without a general package-output cache upload. NUR evaluation permits import from derivation, so arbitrary repositories can still trigger builds during evaluation. This repository additionally evaluates all supported derivations with that feature disabled.

Compatibility and package policy

CI evaluates the entry point with the repository's locked Nixpkgs and current nixos-unstable. Stable releases are not promised. Existing package names are a public interface; incompatible renames should have a documented migration path. Each package's README or description explains the personal variant where one exists. Report compatibility problems through this repository's issues, including the package name, system, repository revision and Nixpkgs revision.

Unfree packages require consumer consent. For example:

pkgs = import nixpkgs {
  inherit system;
  config.allowUnfreePredicate = package:
    builtins.elem (nixpkgs.lib.getName package) [ "ttf-ms-win11-auto" ];
};

Use the actual package pname when selecting other unfree packages. Evaluation permission is separate from the upstream license's installation and distribution terms. No cache publication is enabled by this NUR integration.

The Windows ISO fetcher shares the ttf-ms-win11-auto policy name, so the example covers both the package and its download. apple-fonts is a composite; its predicate must also permit the selected apple-asset-* names from apple-fonts.assets; the Apple developer-font distributions are included in that consolidated output and have no separate public attributes. The direct flake packages and legacyPackages interfaces enable unfree internally; use an import or overlay when the caller must enforce a narrower policy. See the metadata research.

Reproduce the checks

With Nix, Git and Python 3 available, run:

python3 scripts/check-nur.py --nixpkgs locked --output /tmp/nur-locked
python3 scripts/check-nur.py --nixpkgs unstable --output /tmp/nur-unstable

The script fetches a pinned NUR evaluator and the requested Nixpkgs source before restricted evaluation. It follows NUR's default unfree policy and 180-second timeout, then separately evaluates supported derivation paths across all three platforms with explicit unfree consent and import-from-derivation disabled. Reports include the resolved Nixpkgs revision and NAR hash, including for the moving unstable branch, plus package counts. CI reports also record the checked-out repository revision. These are evaluation checks; native build coverage remains in the existing CI matrix.

The checker validates the actual registration entry, including its required github-contact, and uses that entry's name and URL. Reports identify the checked-out Git revision and whether local changes exist; a dirty working-tree result is not evidence that the published revision passed. The selected-platform check enables Nixpkgs metadata type validation.

Keep these local and repository CI checks authoritative. The inspected NUR update workflow runs hourly, and the default update command does not enable evaluation. This differs from the README's daily, evaluation-gated description. NUR registration is not a replacement for the package CI pipeline.

Submission preparation

Publish the entry point, metadata and documentation, and wait for the NUR CI matrix and existing package CI to pass on that published revision.

Review docs/nur-registration.json and add its entry to NUR's repos.json. Confirm the proposed namespace remains available and format the manifest using NUR's current instructions. Do not edit NUR's generated lock file. The prepared manifest patch and submission packet record the reviewed base and PR text.

Complete NUR's current PR checklist against the actual published package tree. Retain all copyright notices and package-specific licenses. Submit only the manifest change upstream.

The repository's own packaging code is covered by the root MIT license. Bundled utilities retain their own MIT notices. Vendored expressions must retain their upstream notices. Downloaded programs, fonts and artwork retain their upstream licenses; the root MIT license does not relicense them. A license-notice review does not independently establish every contributor's copyright ownership.

Sources: NUR registration, submission checklist, pinned evaluator.