mirror of
https://github.com/dwinkler1/nvimConfig.git
synced 2026-02-19 22:40:57 -05:00
init wrapper-module config
This commit is contained in:
commit
91755583fd
46 changed files with 4277 additions and 0 deletions
98
overlays/README.md
Normal file
98
overlays/README.md
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
# Overlays
|
||||
|
||||
This directory contains composable Nix overlays used by the Neovim wrapper configuration. Each overlay is small and focused, so you can reuse or override them downstream.
|
||||
|
||||
## Files
|
||||
|
||||
- `r.nix`
|
||||
R-related overrides (rix overlay). Exposes `pkgs.rpkgs` from rstats-on-nix and creates pre-configured `rWrapper` and `quarto` with standard R packages.
|
||||
|
||||
- `python.nix`
|
||||
Python-related overrides and package additions (e.g., extra Python packages).
|
||||
|
||||
- `plugins.nix`
|
||||
Neovim plugin overrides (e.g., patching or pinning plugin derivations).
|
||||
|
||||
- `default.nix`
|
||||
Aggregates and exports the overlays in a composable way. Includes the fran overlay for custom R packages.
|
||||
|
||||
## Exports from `default.nix`
|
||||
|
||||
`overlays/default.nix` exposes:
|
||||
|
||||
- `rOverlay` - rix overlay for R packages from rstats-on-nix
|
||||
- `franOverlay` - fran overlay for custom R packages and tools
|
||||
- `pythonOverlay`
|
||||
- `pluginsOverlay`
|
||||
- `dependencyOverlays` (list of overlays in order)
|
||||
- `dependencyOverlay` (composed overlay via `lib.composeManyExtensions`)
|
||||
- `default` (alias of `dependencyOverlay`)
|
||||
- `dependencies` (alias of `dependencyOverlays`)
|
||||
|
||||
## Downstream usage examples
|
||||
|
||||
### Use the composed default overlay
|
||||
|
||||
```/dev/null/example.nix#L1-18
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
overlayDefs = import ./overlays/default.nix inputs;
|
||||
in {
|
||||
nixpkgs.overlays = [
|
||||
overlayDefs.default
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
### Use specific overlays only
|
||||
|
||||
```/dev/null/example.nix#L1-22
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
overlayDefs = import ./overlays/default.nix inputs;
|
||||
in {
|
||||
nixpkgs.overlays = [
|
||||
overlayDefs.rOverlay
|
||||
overlayDefs.pluginsOverlay
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
### Extend with your own overlay (composition)
|
||||
|
||||
```/dev/null/example.nix#L1-29
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
overlayDefs = import ./overlays/default.nix inputs;
|
||||
myOverlay = final: prev: {
|
||||
# Example: override a package
|
||||
myTool = prev.myTool.override { /* ... */ };
|
||||
};
|
||||
in {
|
||||
nixpkgs.overlays = [
|
||||
overlayDefs.default
|
||||
myOverlay
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
## Adding a new overlay
|
||||
|
||||
1. Create a new overlay file in this directory (e.g., `foo.nix`).
|
||||
2. Import it in `overlays/default.nix` and add it to `dependencyOverlays`.
|
||||
3. Optionally expose it as a named export (e.g., `fooOverlay`) for downstream reuse.
|
||||
|
||||
## Notes
|
||||
|
||||
- Keep overlays composable and focused.
|
||||
- Avoid monolithic overlays; prefer small, purpose-specific overlays.
|
||||
- When overriding plugins, keep patches minimal and document the intent.
|
||||
Loading…
Add table
Add a link
Reference in a new issue