Compare commits

...

19 Commits

Author SHA1 Message Date
Ryan Yin 410b3c5312 chore: remove useless comments 2026-07-06 23:04:16 +08:00
Ryan Yin f0126c69d0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3d46470bb3030020f7e1361f33514854f5bfa86d?narHash=sha256-PkBPmP5ofNtunCU7/tfn6wi9OLlzFGcHAqqmY%2B/mwUI%3D' (2026-06-27)
  → 'github:NixOS/nixpkgs/d407951447dcd00442e97087bf374aad70c04cea?narHash=sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU%2BK27sk%3D' (2026-07-05)
2026-07-06 23:04:16 +08:00
Ryan Yin 0fe12bef5a fix(nix): preserve default sandbox shell
Setting nix.settings.sandbox-paths replaces Nix compiled sandbox defaults. Keeping only /dev/net made local builds lose the sandbox shell that normally provides /bin/sh, which broke upstream scripts with /bin/sh shebangs in packages such as X11-fonts and openldap.

Use extra-sandbox-paths for /dev/net instead. This keeps Nix daemon defaults intact, including the configured sandbox shell, while still allowing builds that need /dev/net.

Add eval coverage for both Linux output sets so future changes keep /dev/net in extra-sandbox-paths and do not reintroduce an explicit sandbox-paths override.
2026-07-06 23:04:16 +08:00
Ryan Yin 049390581e fix(flake): update lanzaboote after bootspec removal
The pinned lanzaboote module still defined boot.bootspec.enable, but nixpkgs now always generates bootspec data and rejects attempts to set that removed option.

Update the lanzaboote input to a revision compatible with the new nixpkgs module behavior.
2026-07-06 22:01:23 +08:00
Ryan Yin 46398fc688 fix(nixos): migrate kmscon to config attrset
Nixpkgs removed services.kmscon.fonts and services.kmscon.extraConfig, so the old font module failed evaluation on current nixos-unstable.

Move the selected font, font size, and hardware acceleration settings into services.kmscon.config while keeping the existing terminal type option.
2026-07-06 22:01:18 +08:00
Ryan Yin c7b82b9e3e flake.lock: Update
Flake lock file updates:

• Updated input 'llm-agents':
    'github:numtide/llm-agents.nix/129d65240d8c27ab2875f415e0c0b1da8ca28552?narHash=sha256-7%2BuI3P7u%2Btgl0ZfCusw3g9yoG74yogO/l/QLwNmNDEU%3D' (2026-06-21)
  → 'github:numtide/llm-agents.nix/76948750034d89409ac9224173f52ffc05afe946?narHash=sha256-X1xqgUNcYI/UWxDW8W1DC7OEMOjOhTtwWc8v%2BMGMasY%3D' (2026-06-29)
• Updated input 'llm-agents/nixpkgs':
    'github:NixOS/nixpkgs/3e41b24abd260e8f71dbe2f5737d24122f972158?narHash=sha256-rxO%2Buc/KFbSJp%2BpgyXRuAX6QlG9hJdnt0BXpEQRXY%2BU%3D' (2026-06-16)
  → 'github:NixOS/nixpkgs/89570f24e97e614aa34aa9ab1c927b6578a43775?narHash=sha256-EMzXKmnOtBQ2MnvpiNOm7E%2BkOMvdPrIKaeg52Tip2Uk%3D' (2026-06-23)
2026-06-29 10:37:26 +08:00
Ryan Yin c02459fabc flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e9a7635a57597d9754eccebdfc7045e6c8600e6b?narHash=sha256-u6WU/yd/o8iYQrHX3RAwO1hYa3LkoSL%2BWNQD0rJfJZQ%3D' (2026-05-29)
  → 'github:NixOS/nixpkgs/3d46470bb3030020f7e1361f33514854f5bfa86d?narHash=sha256-PkBPmP5ofNtunCU7/tfn6wi9OLlzFGcHAqqmY%2B/mwUI%3D' (2026-06-27)
2026-06-29 10:30:01 +08:00
Ryan Yin 30a6ad89ef chore(nixos): dns servers 2026-06-27 22:11:17 +08:00
Ryan Yin a5110c3aa7 feat(darwin): add orca slicer 2026-06-25 22:41:17 +08:00
Ryan Yin 0e5f1801cf feat(nixos): add orca-slicer
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-06-25 22:19:14 +08:00
Ryan Yin 6279ac663f docs: AGENTS.md - script languages 2026-06-23 20:46:35 +08:00
Ryan Yin 92b92969b3 docs: AGENTS.md - script languages 2026-06-23 20:43:11 +08:00
Ryan Yin ef1c02f3cf docs: AGENTS.md
Signed-off-by: Ryan Yin <xiaoyin_c@qq.com>
2026-06-23 20:34:58 +08:00
Ryan Yin b493cbae45 flake.lock: Update
Flake lock file updates:

• Updated input 'llm-agents':
    'github:numtide/llm-agents.nix/27d586e930f255a425ec2f9f238f078880333d09?narHash=sha256-gYIQvLpoGLH34tw3lZp11IrK82mkttLcw5sPErGe3%2Bk%3D' (2026-06-12)
  → 'github:numtide/llm-agents.nix/129d65240d8c27ab2875f415e0c0b1da8ca28552?narHash=sha256-7%2BuI3P7u%2Btgl0ZfCusw3g9yoG74yogO/l/QLwNmNDEU%3D' (2026-06-21)
• Updated input 'llm-agents/nixpkgs':
    'github:NixOS/nixpkgs/8c3cede7ddc26bd659d2d383b5610efbd2c7a16e?narHash=sha256-rppURzHviaQN131F%2BnLiLdGfcb0uCd9gGP0E5%2Biw9MI%3D' (2026-06-08)
  → 'github:NixOS/nixpkgs/3e41b24abd260e8f71dbe2f5737d24122f972158?narHash=sha256-rxO%2Buc/KFbSJp%2BpgyXRuAX6QlG9hJdnt0BXpEQRXY%2BU%3D' (2026-06-16)
2026-06-22 09:07:06 +08:00
Ryan Yin 8462d34ade feat: NixOS tests using systemd-nspawn containers 2026-06-22 09:02:06 +08:00
Ryan Yin be429dea2e docs: remove comment 2026-06-14 14:25:33 +08:00
Ryan Yin 691af4ae54 chore: use nixfmt pre-commit hook 2026-06-14 14:15:37 +08:00
Ryan Yin 400725b36c chore: replace nixos-generators image outputs 2026-06-14 14:10:08 +08:00
Ryan Yin 2ed03e23e3 chore: remove nuenv input 2026-06-14 14:09:40 +08:00
35 changed files with 169 additions and 225 deletions
+15 -15
View File
@@ -31,7 +31,7 @@ If rules conflict, follow the higher-priority source and state the conflict brie
- Never write secret literals into tracked files. - Never write secret literals into tracked files.
- Use environment variables, secret managers, or placeholders. - Use environment variables, secret managers, or placeholders.
- Redact sensitive output in logs and summaries. - Redact sensitive output in logs and summaries.
- For infra/IaC changes, prefer plan/eval/check before apply/switch. - For infra/IaC changes, prefer plan/eval/check before apply/deploy.
## 4) Scope Discipline ## 4) Scope Discipline
@@ -48,35 +48,35 @@ If rules conflict, follow the higher-priority source and state the conflict brie
## 6) Tooling Defaults ## 6) Tooling Defaults
- Use Bash only for quick one-offs, Nushell for personal tooling, Python for everything else.
- Prefer structural search tools first for code find/replace (`ast-grep`/`jq`/`yq`), then text tools - Prefer structural search tools first for code find/replace (`ast-grep`/`jq`/`yq`), then text tools
(`rg`, `fd`). (`rg`, `fd`).
- Prefer project task runners (`just`, `make`, `task`, `npm scripts`, etc.) over ad-hoc commands - Prefer project task runners (`just`, `make`, `npm scripts`, etc.) over ad-hoc commands when
when equivalent. equivalent.
- If a required command is not already available, use only `nix run`, `flake.nix`/`shell.nix` or - Only use `nix run`, `flake.nix`/`shell.nix`, or `uv`/`pnpm` for missing commands & packages.
`uv`/`pnpm` to provide it. Otherwise, ask the user—never use another installer.
- If that is still insufficient, stop and ask the user to prepare the environment instead of using
any other installation method.
- Use `gh` CLI for GitHub operations, especially code/PR/issue search and inspection. - Use `gh` CLI for GitHub operations, especially code/PR/issue search and inspection.
## 7) Environment Defaults ## 7) Environment Defaults
- Primary OS: NixOS. - Primary OS: NixOS & macOS.
- Shell: default to `nushell`, `bash` also exists. - Shell: default to Nushell, Bash also exists.
## 8) Script Engineering Principles ## 8) Script Engineering Principles
Treat scripts as interruptible jobs that must be diagnosable and safe to rerun: Treat scripts as interruptible jobs that must be diagnosable and safe to rerun:
- Split workflows into explicit stages; allow running a selected stage via flags/arguments. - Verbose logging of progress, decisions, and errors.
- Make reruns idempotent; persist progress after each stage and support resume. - Stage workflows with selective execution via cli flags.
- Cache external data with invalidation strategy to speed retries and improve reproducibility. - Idempotent reruns; persist progress and support resume.
- For HTTP flows, separate transport success from business success; support retry/backoff. - Cache external data with invalidation.
- Provide independent verification commands/checks for key outputs (counts, samples, invariants). - Separate HTTP transport from business success; retry with backoff.
- Verify key outputs independently.
## 9) Communication Defaults ## 9) Communication Defaults
- Respond in the language the user is currently using, prefer English & Chinese. - Respond in the language the user is currently using, prefer English & Chinese.
- Code, commands, identifiers, and code comments: English. - Code, commands, identifiers, and code comments: Prefer English.
- Be concise, concrete, and action-oriented. - Be concise, concrete, and action-oriented.
## 10) Project Overlay ## 10) Project Overlay
Generated
+27 -141
View File
@@ -127,11 +127,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1765145449, "lastModified": 1781825982,
"narHash": "sha256-aBVHGWWRzSpfL++LubA0CwOOQ64WNLegrYHwsVuVN7A=", "narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "69f538cdce5955fcd47abfed4395dc6d5194c1c5", "rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -186,15 +186,15 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1767039857,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "NixOS",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "edolstra", "owner": "NixOS",
"repo": "flake-compat", "repo": "flake-compat",
"type": "github" "type": "github"
} }
@@ -327,24 +327,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@@ -531,16 +513,16 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1765382359, "lastModified": 1782141370,
"narHash": "sha256-RJmgVDzjRI18BWVogG6wpsl1UCuV6ui8qr4DJ1LfWZ8=", "narHash": "sha256-hqijVSEETttmo8Okql9/LG0Ua34hdciKW1a5zzlj8mU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "e8c096ade12ec9130ff931b0f0e25d2f1bc63607", "rev": "7c9a54a7f87b4539ddbd8bda09a8a5f5f9361aa9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "v1.0.0", "ref": "v1.1.0",
"repo": "lanzaboote", "repo": "lanzaboote",
"type": "github" "type": "github"
} }
@@ -555,11 +537,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1781228339, "lastModified": 1782695301,
"narHash": "sha256-gYIQvLpoGLH34tw3lZp11IrK82mkttLcw5sPErGe3+k=", "narHash": "sha256-X1xqgUNcYI/UWxDW8W1DC7OEMOjOhTtwWc8v+MGMasY=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "27d586e930f255a425ec2f9f238f078880333d09", "rev": "76948750034d89409ac9224173f52ffc05afe946",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -644,21 +626,6 @@
"type": "github" "type": "github"
} }
}, },
"nixlib": {
"locked": {
"lastModified": 1736643958,
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixos-apple-silicon": { "nixos-apple-silicon": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
@@ -680,27 +647,6 @@
"type": "github" "type": "github"
} }
}, },
"nixos-generators": {
"inputs": {
"nixlib": "nixlib",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769813415,
"narHash": "sha256-nnVmNNKBi1YiBNPhKclNYDORoHkuKipoz7EtVnXO50A=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "8946737ff703382fda7623b9fab071d037e897d5",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-generators",
"type": "github"
}
},
"nixpak": { "nixpak": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
@@ -725,11 +671,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1780930886, "lastModified": 1782175435,
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=", "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e", "rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -836,11 +782,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1780030872, "lastModified": 1783224372,
"narHash": "sha256-u6WU/yd/o8iYQrHX3RAwO1hYa3LkoSL+WNQD0rJfJZQ=", "narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e9a7635a57597d9754eccebdfc7045e6c8600e6b", "rev": "d407951447dcd00442e97087bf374aad70c04cea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -889,27 +835,6 @@
"type": "github" "type": "github"
} }
}, },
"nuenv": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1731006591,
"narHash": "sha256-zCh7F0XKC5IEJKBTSNnUQ3SwJz3izPdxEU3C4udG8qI=",
"owner": "DeterminateSystems",
"repo": "nuenv",
"rev": "45693a438df82b3a604f855c3372f4f7d9efb3eb",
"type": "github"
},
"original": {
"owner": "DeterminateSystems",
"repo": "nuenv",
"type": "github"
}
},
"nur-ryan4yin": { "nur-ryan4yin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -940,11 +865,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765016596, "lastModified": 1781733627,
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=", "narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", "rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1005,7 +930,6 @@
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-gaming": "nix-gaming", "nix-gaming": "nix-gaming",
"nixos-apple-silicon": "nixos-apple-silicon", "nixos-apple-silicon": "nixos-apple-silicon",
"nixos-generators": "nixos-generators",
"nixpak": "nixpak", "nixpak": "nixpak",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-2505": "nixpkgs-2505", "nixpkgs-2505": "nixpkgs-2505",
@@ -1015,7 +939,6 @@
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"nixvim": "nixvim", "nixvim": "nixvim",
"nu_scripts": "nu_scripts", "nu_scripts": "nu_scripts",
"nuenv": "nuenv",
"nur-ryan4yin": "nur-ryan4yin", "nur-ryan4yin": "nur-ryan4yin",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"preservation": "preservation", "preservation": "preservation",
@@ -1030,33 +953,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765075567, "lastModified": 1782012058,
"narHash": "sha256-KFDCdQcHJ0hE3Nt5Gm5enRIhmtEifAjpxgUQ3mzSJpA=", "narHash": "sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "769156779b41e8787a46ca3d7d76443aaf68be6f", "rev": "8534567325bd8a8d2928e6afd81e0a87d19efd3c",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nuenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1701397143,
"narHash": "sha256-nYUJxZXwCWWVBYZXPgRxGDuQcZRhKTtD/Jp5Jl+9EWU=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "bb71557c93cad40f5921b2342d7fd69f9e6497ab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1110,21 +1011,6 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": { "treefmt-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
+1 -12
View File
@@ -79,7 +79,7 @@
}; };
lanzaboote = { lanzaboote = {
url = "github:nix-community/lanzaboote/v1.0.0"; url = "github:nix-community/lanzaboote/v1.1.0";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@@ -87,11 +87,6 @@
url = "github:nix-community/preservation"; url = "github:nix-community/preservation";
}; };
# generate iso/qcow2/docker/... image from nixos configuration
nixos-generators = {
url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs";
};
# secrets management # secrets management
agenix = { agenix = {
# lock with git commit at May 18, 2025 # lock with git commit at May 18, 2025
@@ -112,11 +107,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nuenv = {
url = "github:DeterminateSystems/nuenv";
inputs.nixpkgs.follows = "nixpkgs";
};
haumea = { haumea = {
url = "github:nix-community/haumea/v0.2.2"; url = "github:nix-community/haumea/v0.2.2";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -133,7 +123,6 @@
}; };
nixos-apple-silicon = { nixos-apple-silicon = {
# asahi-6.18.9
url = "github:nix-community/nixos-apple-silicon"; url = "github:nix-community/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
-8
View File
@@ -19,14 +19,6 @@
$env.ANTHROPIC_BASE_URL = $env.WORK_ANTHROPIC_BASE_URL $env.ANTHROPIC_BASE_URL = $env.WORK_ANTHROPIC_BASE_URL
$env.ANTHROPIC_AUTH_TOKEN = $env.WORK_ANTHROPIC_AUTH_TOKEN $env.ANTHROPIC_AUTH_TOKEN = $env.WORK_ANTHROPIC_AUTH_TOKEN
# using claude-code with glm llm
# https://docs.bigmodel.cn/cn/coding-plan/tool/claude
# $env.ANTHROPIC_BASE_URL = "https://open.bigmodel.cn/api/anthropic"
# $env.ANTHROPIC_AUTH_TOKEN = $env.ZAI_API_KEY
# $env.ANTHROPIC_DEFAULT_OPUS_MODEL = "glm-5.1"
# $env.ANTHROPIC_DEFAULT_SONNET_MODEL = "glm-5-turbo"
# $env.ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-4.5-air"
# Directories in this constant are searched by the # Directories in this constant are searched by the
# `use` and `source` commands. # `use` and `source` commands.
const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}'] const NU_LIB_DIRS = $NU_LIB_DIRS ++ ['${nu_scripts}']
+1
View File
@@ -14,6 +14,7 @@
inkscape # vector graphics inkscape # vector graphics
krita # digital painting krita # digital painting
musescore # music notation musescore # music notation
orca-slicer # 3d printer slicer app
# reaper # audio production # reaper # audio production
# sonic-pi # music programming # sonic-pi # music programming
+4
View File
@@ -300,6 +300,10 @@ in
".local/share/io.github.clash-verge-rev.clash-verge-rev" ".local/share/io.github.clash-verge-rev.clash-verge-rev"
".local/share/clash-verge" ".local/share/clash-verge"
# Orca Slicer - 3D Printer Slicer
".local/share/orca-slicer"
".config/OrcaSlicer"
# Audio # Audio
".config/pulse" ".config/pulse"
".local/state/wireplumber" ".local/state/wireplumber"
+1 -4
View File
@@ -10,15 +10,12 @@
... ...
}: }:
let let
inherit (inputs) nixpkgs home-manager nixos-generators; inherit (inputs) nixpkgs home-manager;
in in
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
inherit system specialArgs; inherit system specialArgs;
modules = modules =
nixos-modules nixos-modules
++ [
nixos-generators.nixosModules.all-formats
]
++ (lib.optionals ((lib.lists.length home-modules) > 0) [ ++ (lib.optionals ((lib.lists.length home-modules) > 0) [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
+2 -6
View File
@@ -1,7 +1,3 @@
{ nuenv, ... }@args: args: {
{ nixpkgs.overlays = import ../../overlays args;
nixpkgs.overlays = [
nuenv.overlays.default
]
++ (import ../../overlays args);
} }
+1
View File
@@ -177,6 +177,7 @@ in
# Misc # Misc
"iina" # video player "iina" # video player
"stats" # beautiful system status monitor in menu bar "stats" # beautiful system status monitor in menu bar
"orcaslicer" # 3d printer slicer app
# "reaper" # audio editor # "reaper" # audio editor
# "tencent-lemon" # macOS cleaner # "tencent-lemon" # macOS cleaner
+23 -6
View File
@@ -1,8 +1,4 @@
{ { lib, ... }:
config,
lib,
...
}:
{ {
# auto upgrade nix to the unstable version # auto upgrade nix to the unstable version
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/package-management/nix/default.nix#L284 # https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/tools/package-management/nix/default.nix#L284
@@ -23,7 +19,28 @@
# Manual optimise storage: nix-store --optimise # Manual optimise storage: nix-store --optimise
# https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store # https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
nix.settings.auto-optimise-store = true; nix.settings = {
auto-optimise-store = true;
# Reference: https://github.com/NixOS/nixpkgs/pull/478109
# NixOS tests using systemd-nspawn containers require the Nix daemon to be
# configured with the following settings:
auto-allocate-uids = true;
extra-system-features = [ "uid-range" ];
experimental-features = [
"auto-allocate-uids"
"cgroups"
];
# Use extra-sandbox-paths instead of sandbox-paths here. The plain
# sandbox-paths setting replaces Nix's compiled sandbox defaults, including
# the sandbox shell that provides /bin/sh for builders with legacy shebangs.
# extra-sandbox-paths keeps those defaults and only adds the paths we need.
# After deploying, verify the effective daemon config with:
# nix config show | grep sandbox-paths
extra-sandbox-paths = [
"/dev/net"
];
};
nix.channel.enable = false; # remove nix-channel related tools & configs, we use flakes instead. nix.channel.enable = false; # remove nix-channel related tools & configs, we use flakes instead.
} }
+5 -13
View File
@@ -55,19 +55,11 @@
# It supports a richer feature set than the standard linux console VT, # It supports a richer feature set than the standard linux console VT,
# including full unicode support, and when the video card supports drm should be much faster. # including full unicode support, and when the video card supports drm should be much faster.
enable = true; enable = true;
fonts = with pkgs; [
{
name = "Maple Mono NF CN";
package = maple-mono.NF-CN-unhinted;
}
{
name = "JetBrainsMono Nerd Font";
package = nerd-fonts.jetbrains-mono;
}
];
extraOptions = "--term xterm-256color"; extraOptions = "--term xterm-256color";
extraConfig = "font-size=14"; config = {
# Whether to use 3D hardware acceleration to render the console. font-name = "Maple Mono NF CN";
hwRender = true; font-size = 14;
hwaccel = true;
};
}; };
} }
-1
View File
@@ -6,7 +6,6 @@
preservation.url = "github:nix-community/preservation"; preservation.url = "github:nix-community/preservation";
disko.url = "github:nix-community/disko/v1.11.0"; disko.url = "github:nix-community/disko/v1.11.0";
disko.inputs.nixpkgs.follows = "nixpkgs"; disko.inputs.nixpkgs.follows = "nixpkgs";
nuenv.url = "github:DeterminateSystems/nuenv";
nixos-apple-silicon = { nixos-apple-silicon = {
# 2025-10-07 asahi-6.16.8-1 # 2025-10-07 asahi-6.16.8-1
@@ -56,6 +56,6 @@ in
# generate iso image for hosts with desktop environment # generate iso image for hosts with desktop environment
packages = { packages = {
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.formats.iso; "${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.system.build.images.iso;
}; };
} }
@@ -0,0 +1,12 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (_: {
autoAllocateUids = true;
hasUidRange = true;
hasAutoAllocateUidsFeature = true;
hasCgroupsFeature = true;
hasNoExplicitSandboxPaths = true;
hasDevNetExtraSandboxPath = true;
})
@@ -0,0 +1,22 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (
name:
let
settings = outputs.nixosConfigurations.${name}.config.nix.settings;
effectiveSystemFeatures =
(settings.system-features or [ ]) ++ (settings.extra-system-features or [ ]);
in
{
autoAllocateUids = settings.auto-allocate-uids or false;
hasUidRange = builtins.elem "uid-range" effectiveSystemFeatures;
hasAutoAllocateUidsFeature = builtins.elem "auto-allocate-uids" (
settings.experimental-features or [ ]
);
hasCgroupsFeature = builtins.elem "cgroups" (settings.experimental-features or [ ]);
hasNoExplicitSandboxPaths = !(settings ? sandbox-paths);
hasDevNetExtraSandboxPath = builtins.elem "/dev/net" (settings.extra-sandbox-paths or [ ]);
}
)
+1 -1
View File
@@ -142,7 +142,7 @@ in
pre-commit-check = pre-commit-hooks.lib.${system}.run { pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = mylib.relativeToRoot "."; src = mylib.relativeToRoot ".";
hooks = { hooks = {
nixfmt-rfc-style = { nixfmt = {
enable = true; enable = true;
settings.width = 100; settings.width = 100;
}; };
+1 -1
View File
@@ -56,6 +56,6 @@ in
# generate iso image for hosts with desktop environment # generate iso image for hosts with desktop environment
packages = { packages = {
"${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.formats.iso; "${name}-niri" = inputs.self.nixosConfigurations."${name}-niri".config.system.build.images.iso;
}; };
} }
@@ -47,5 +47,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
+1 -1
View File
@@ -44,5 +44,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
+1 -1
View File
@@ -44,7 +44,7 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
# nixos tests # nixos tests
packages."${name}-nixos-tests" = import ../nixos-tests/idols-ruby.nix systemArgs; packages."${name}-nixos-tests" = import ../nixos-tests/idols-ruby.nix systemArgs;
@@ -40,5 +40,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -40,5 +40,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
@@ -37,5 +37,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.kubevirt; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.kubevirt;
} }
+1 -1
View File
@@ -45,5 +45,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
} }
@@ -42,5 +42,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
} }
+1 -1
View File
@@ -42,5 +42,5 @@ in
colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; }); colmena.${name} = mylib.colmenaSystem (systemArgs // { inherit tags ssh-user; });
packages.${name} = inputs.self.nixosConfigurations.${name}.config.formats.iso; packages.${name} = inputs.self.nixosConfigurations.${name}.config.system.build.images.iso;
} }
@@ -0,0 +1,12 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (_: {
autoAllocateUids = true;
hasUidRange = true;
hasAutoAllocateUidsFeature = true;
hasCgroupsFeature = true;
hasNoExplicitSandboxPaths = true;
hasDevNetExtraSandboxPath = true;
})
@@ -0,0 +1,22 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (
name:
let
settings = outputs.nixosConfigurations.${name}.config.nix.settings;
effectiveSystemFeatures =
(settings.system-features or [ ]) ++ (settings.extra-system-features or [ ]);
in
{
autoAllocateUids = settings.auto-allocate-uids or false;
hasUidRange = builtins.elem "uid-range" effectiveSystemFeatures;
hasAutoAllocateUidsFeature = builtins.elem "auto-allocate-uids" (
settings.experimental-features or [ ]
);
hasCgroupsFeature = builtins.elem "cgroups" (settings.experimental-features or [ ]);
hasNoExplicitSandboxPaths = !(settings ? sandbox-paths);
hasDevNetExtraSandboxPath = builtins.elem "/dev/net" (settings.extra-sandbox-paths or [ ]);
}
)
+3 -1
View File
@@ -8,9 +8,11 @@ rec {
proxyGateway6 = "fe80::8"; proxyGateway6 = "fe80::8";
nameservers = [ nameservers = [
# IPv4 # IPv4
"119.29.29.29" # DNSPod "119.29.29.29" # DNSPod https://www.dnspod.cn/Products/publicdns
"223.5.5.5" # AliDNS "223.5.5.5" # AliDNS
"1.1.1.1" # Cloudflare https://one.one.one.one/dns/
# IPv6 # IPv6
"2402:4e00::" # DNSPod
"2400:3200::1" # Alidns "2400:3200::1" # Alidns
"2606:4700:4700::1111" # Cloudflare "2606:4700:4700::1111" # Cloudflare
]; ];