mirror of
https://github.com/NotAShelf/nyxexprs.git
synced 2025-10-01 14:33:29 +00:00
docs: improve usage examples; add diniamo to credits
This commit is contained in:
parent
8d74b96bd4
commit
3d0975e08c
1 changed files with 93 additions and 24 deletions
117
README.md
117
README.md
|
@ -1,59 +1,128 @@
|
|||
# 🌙 nyxexprs
|
||||
|
||||
My personal package overlay for sharing my most commonly used derivations. Kept
|
||||
up to date with Github workflows and npins. Contributions welcome.
|
||||
Welcome to nyxexprs! This is my personal package overlay, for derivations I use
|
||||
from time to time when they do not fit my "monorepo" use case. This repository
|
||||
holds things I've packages, as well as derivations and a binary cache for most
|
||||
of my personal projects. It also contains packages and modules I've refactored
|
||||
out of my personal NixOS configuration, Nyx (hence the name "nyxexprs.")
|
||||
|
||||
Kept up to date with Github workflows and npins. Contributions welcome.
|
||||
|
||||
## Usage
|
||||
|
||||
All packages in Nyxexprs are exposed in the flake outputs.
|
||||
All packages in Nyxexprs are exposed in the flake outputs, under `packages`. An
|
||||
overlay is also provided through [flake-parts](https://flake.parts)'
|
||||
[easy-overlay module](https://flake.parts/options/flake-parts-easyoverlay)
|
||||
|
||||
### Flakes
|
||||
|
||||
```nix
|
||||
# flake.nix
|
||||
inputs = {
|
||||
# Add an input as such. Avoid adding "follows" lines if you would
|
||||
# like to benefit from the binary cache.
|
||||
# In your flake.nix
|
||||
|
||||
{
|
||||
inputs = {
|
||||
# Your Nixpkgs input
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
|
||||
# Add an input as such. Do NOT add the "follows" line (a typical flakes
|
||||
# pattern) if you intend to use the binary cache.
|
||||
nyxexprs.url = "github:notashelf/nyxexprs";
|
||||
|
||||
# Other inputs
|
||||
# ...
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
If you are using Nix on a non-NixOS distro, you may nix run to try out packages,
|
||||
or `nix profile install` to install them on your system profile. If using
|
||||
home-manager on non-NixOS, I recommend using `home.packages` instead.
|
||||
|
||||
### Binary Cache
|
||||
|
||||
Regardless of your setup,you may want to add the
|
||||
[binary cache](https://app.cachix.org/cache/nyx) to your substituters to avoid
|
||||
building the provided packages on each pull. You may follow the example below to
|
||||
add the binary cache to your system.
|
||||
Then get the package you need directly from inputs
|
||||
|
||||
```nix
|
||||
nix.settings = {
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
# For this to be valid, you need `inputs` in the argset above and nyxexprs
|
||||
# to be in your `inputs`, as demonstrated in the flake.nix example
|
||||
environment.systemPackages = [
|
||||
# `pkgs.stdenv.hostPlatform.system` is an explicit way of replacing
|
||||
# `pkgs.system`. It is especially important on systems with aliases
|
||||
# disabled in their nixpkgs config. Nixpkgs also likes enjoying changing
|
||||
# things around every once in a while, so being explicit is good.
|
||||
inputs.nyxexprs.packages.${pkgs.stdenv.hostPlatform.system}.tempus # example
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
### Overlay
|
||||
|
||||
An overlay is provided. Once added, it may be consumed as follows:
|
||||
|
||||
```nix
|
||||
{
|
||||
inputs, # needs to be in scope, e.g., with `specialArgs`
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
nixpkgs.overlays = [inputs.nyxexprs.overlays.default];
|
||||
|
||||
# Overlays modify the `pkgs` instance. If consumed, all
|
||||
# of my packages will be appended directly to your pkgs
|
||||
# at which point you can consume them as `pkgs.package`
|
||||
environment.systemPackages = [
|
||||
pkgs.tempus # example package
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> If you are using Nix on a non-NixOS distro, you may nix run to try out
|
||||
> packages, or `nix profile install` to install them on your system profile. If
|
||||
> using home-manager on non-NixOS, I recommend using `home.packages` instead.
|
||||
|
||||
## Binary Cache
|
||||
|
||||
[binary cache]: https://app.cachix.org/cache/nyx
|
||||
|
||||
Regardless of your setup, you may want to add the [binary cache] to your
|
||||
substituters to avoid building the provided packages on each pull. You may
|
||||
follow the example below to add the binary cache to your system.
|
||||
|
||||
```nix
|
||||
{
|
||||
nix.settings = {
|
||||
builders-use-substitutes = true;
|
||||
substituters = [
|
||||
# other substituters
|
||||
# Add the Nyx cache
|
||||
"https://nyx.cachix.org"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
# other trusted keys
|
||||
# And the trusted public key for Nyx
|
||||
"nyx.cachix.org-1:xH6G0MO9PrpeGe7mHBtj1WbNzmnXr7jId2mCiq6hipE="
|
||||
|
||||
# Other trusted public keys
|
||||
# ...
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## 🫂 Credits
|
||||
|
||||
[@fufexan]: https://github.com/fufexan
|
||||
[nix-gaming]: https://github.com/fufexan/nix-gaming
|
||||
[@diniamo]: https://github.com/diniamo
|
||||
[niqspkgs]: https://github.com/diniamo/niqspkgs
|
||||
|
||||
The repository structure is mostly borrowed from [@fufexan] 's [nix-gaming]
|
||||
repository. Thank you fuf!
|
||||
|
||||
I've also borrowed some CI logic around detecting uncached packages from
|
||||
[@diniamo], which uses GitHub workflows in [niqspkgs] to build and cache
|
||||
packages missing in Cachix.
|
||||
|
||||
## 📜 License
|
||||
|
||||
This repository (Nix, patches, ettc.) is released under EUPL v1.2. Please see
|
||||
the [license file](./LICENSE) for more details.
|
||||
This repository (Nix codee, patches, etc.) is released under EUPL v1.2. Please
|
||||
see the [license file](./LICENSE) for more details.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue