refactor(overlays): get NUR packages from the nur-ryan4yin overlay

myNurPkgs evaluated a second nixpkgs just for four packages. Apply the
NUR repo's own overlay instead, so they come from the host's pkgs.

Darwin's pkgs now gets nixpkgsConfig too: it set nixpkgs.pkgs, which
ignores nixpkgs.config, so only myNurPkgs carried the npm mirror there.

Assisted-by: Claude Code (claude-opus-5-5)
This commit is contained in:
Ryan Yin authored and ryan4yin | 二花 committed 2026-11-01 11:55:14 -06:00
1 parent 70d8bd6791
commit c8bbeb708d
11 files changed
+13 -35

No files matched your search

+1 -2
View File
@@ -1,13 +1,12 @@
{ {
lib, lib,
myNurPkgs,
pkgs, pkgs,
... ...
}: }:
let let
# flypy (小鹤音形) rime data from nur-ryan4yin (`pkgs/rime-data-flypy`). The # flypy (小鹤音形) rime data from nur-ryan4yin (`pkgs/rime-data-flypy`). The
# package stays pristine; personal preferences live in flypy.custom.yaml. # package stays pristine; personal preferences live in flypy.custom.yaml.
rime-data-flypy = myNurPkgs.rime-data-flypy; rime-data-flypy = pkgs.rime-data-flypy;
# Personal Rime customisation, layered by Rime on top of the shared rime-data. # Personal Rime customisation, layered by Rime on top of the shared rime-data.
custom = ./flypy.custom.yaml; custom = ./flypy.custom.yaml;
# Manually maintained user dictionary (custom phrases, symbols, missing # Manually maintained user dictionary (custom phrases, symbols, missing
+2 -3
View File
@@ -1,7 +1,6 @@
{ {
pkgs, pkgs,
llm-agents, llm-agents,
myNurPkgs,
dsh-nu, dsh-nu,
... ...
}: }:
@@ -11,7 +10,7 @@ let
# supplies the dsh installation it plugs into. # supplies the dsh installation it plugs into.
dshNu = dsh-nu.lib.mkDshNuPackage { dshNu = dsh-nu.lib.mkDshNuPackage {
inherit pkgs; inherit pkgs;
dsh = myNurPkgs.dsh; inherit (pkgs) dsh;
}; };
in in
{ {
@@ -23,7 +22,7 @@ in
# dsh from nur-packages: llm-agents.nix's dsh cannot boot on nixpkgs node # dsh from nur-packages: llm-agents.nix's dsh cannot boot on nixpkgs node
# (node-addon-require-builtin probe), this one shims it. The Nushell-only # (node-addon-require-builtin probe), this one shims it. The Nushell-only
# plugin rides in through the package's withPlugins wrapper. # plugin rides in through the package's withPlugins wrapper.
(myNurPkgs.dsh.withPlugins [ dshNu ]) (pkgs.dsh.withPlugins [ dshNu ])
# Docs lookup CLI behind the find-docs skill (agents/skills/find-docs). The skill's flags are # Docs lookup CLI behind the find-docs skill (agents/skills/find-docs). The skill's flags are
# written against this package, not against upstream's npx instructions. # written against this package, not against upstream's npx instructions.
+1 -1
View File
@@ -45,7 +45,7 @@ tree the agent reads, so it stays.
- the generated `computer-use-init` script (exec'd by i3) publishes `DISPLAY`/`XDG_SESSION_TYPE` to - the generated `computer-use-init` script (exec'd by i3) publishes `DISPLAY`/`XDG_SESSION_TYPE` to
the systemd user manager, clears any stale `WAYLAND_DISPLAY`, and enables the AT-SPI bridge via a the systemd user manager, clears any stale `WAYLAND_DISPLAY`, and enables the AT-SPI bridge via a
gsettings key. gsettings key.
- Drivers live in `overlays/cua-driver.nix` and `overlays/computer-use-linux.nix`. - Drivers come from the nur-ryan4yin overlay (`overlays/nur-ryan4yin.nix`).
- Host wiring: `home/hosts/linux/idols-ruby.nix`, `home/hosts/linux/idols-kana.nix`, - Host wiring: `home/hosts/linux/idols-ruby.nix`, `home/hosts/linux/idols-kana.nix`,
`hosts/idols-ruby/computer-use.nix`. `hosts/idols-ruby/computer-use.nix`.
+1 -1
View File
@@ -82,7 +82,7 @@ in
xvfb # headless X server xvfb # headless X server
] ]
++ [ ++ [
# MCP server / CLI that drives the desktop (see overlays/computer-use-linux.nix). # MCP server / CLI that drives the desktop (see overlays/nur-ryan4yin.nix).
pkgs.computer-use-linux pkgs.computer-use-linux
] ]
++ lib.optional cfg.vnc pkgs.x11vnc ++ lib.optional cfg.vnc pkgs.x11vnc
+1 -2
View File
@@ -1,7 +1,6 @@
{ {
pkgs, pkgs,
llm-agents, llm-agents,
myNurPkgs,
... ...
}: }:
let let
@@ -87,6 +86,6 @@ in
agentPackages.pi agentPackages.pi
# dsh from nur-packages: llm-agents.nix's dsh cannot boot on nixpkgs node # dsh from nur-packages: llm-agents.nix's dsh cannot boot on nixpkgs node
# (node-addon-require-builtin probe), this one shims it. # (node-addon-require-builtin probe), this one shims it.
myNurPkgs.dsh pkgs.dsh
]; ];
} }
+2 -5
View File
@@ -17,16 +17,13 @@ nix-darwin.lib.darwinSystem {
modules = modules =
darwin-modules darwin-modules
++ [ ++ [
(
{ lib, ... }:
{ {
nixpkgs.pkgs = import nixpkgs-darwin { nixpkgs.pkgs = import nixpkgs-darwin {
inherit system; # refer the `system` parameter form outer scope recursively inherit system; # refer the `system` parameter form outer scope recursively
# To use chrome, we need to allow the installation of non-free software # `nixpkgs.config` is ignored once `nixpkgs.pkgs` is set.
config.allowUnfree = true; config = specialArgs.nixpkgsConfig;
}; };
} }
)
] ]
++ (lib.optionals ((lib.lists.length home-modules) > 0) [ ++ (lib.optionals ((lib.lists.length home-modules) > 0) [
home-manager.darwinModules.home-manager home-manager.darwinModules.home-manager
-10
View File
@@ -73,16 +73,6 @@ let
cudaCapabilities = [ "8.9" ]; cudaCapabilities = [ "8.9" ];
}; };
}; };
# NUR packages for this system; modules use `myNurPkgs.dsh` instead of
# repeating `nur-ryan4yin.packages.${pkgs.stdenv.hostPlatform.system}`.
# Instantiate them with the same Nixpkgs policy as the host so npm
# fetchers inside NUR packages also use the mirror.
myNurPkgs = import "${inputs.nur-ryan4yin}" {
pkgs = import inputs.nixpkgs {
inherit system;
config = nixpkgsConfig;
};
};
}; };
# This is the args for all the haumea modules in this folder. # This is the args for all the haumea modules in this folder.
+3 -5
View File
@@ -11,8 +11,7 @@ through [Overlays - NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world
overlays/ overlays/
├── README.md ├── README.md
├── default.nix # Entrypoint for all overlays ├── default.nix # Entrypoint for all overlays
├── computer-use-linux.nix # computer-use-linux from ryan4yin/nur-packages └── nur-ryan4yin.nix # ryan4yin/nur-packages
└── cua-driver.nix # cua-driver from ryan4yin/nur-packages
``` ```
## Components ## Components
@@ -23,6 +22,5 @@ The entrypoint imports every overlay file in this directory and applies it to th
### 2. Package overlays ### 2. Package overlays
- `computer-use-linux.nix`: exposes `computer-use-linux` from the `nur-ryan4yin` flake input. - `nur-ryan4yin.nix`: applies the `nur-ryan4yin` input's own overlay, which adds `dsh`,
- `cua-driver.nix`: exposes `cua-driver` from the `nur-ryan4yin` flake input (used by the `rime-data-flypy`, `computer-use-linux` and `cua-driver` to `pkgs`.
computer-use VMs).
-3
View File
@@ -1,3 +0,0 @@
{ myNurPkgs, ... }: _final: _prev: {
computer-use-linux = myNurPkgs.computer-use-linux;
}
-3
View File
@@ -1,3 +0,0 @@
{ myNurPkgs, ... }: _final: _prev: {
cua-driver = myNurPkgs.cua-driver;
}
+2
View File
@@ -0,0 +1,2 @@
# dsh, rime-data-flypy, computer-use-linux and cua-driver from ryan4yin/nur-packages.
{ nur-ryan4yin, ... }: import "${nur-ryan4yin}/overlay.nix"