Nix-Config 项目使用教程
1. 项目目录结构及介绍
Nix-Config 项目的目录结构如下:
.
├── envrc
├── gitignore
├── FUNDING.yaml
├── LICENSE
├── README.md
├── flake.lock
├── flake.nix
├── justfile
├── shell.nix
├── dev
│ ├── checks
│ ├── docs
│ ├── home
│ ├── hosts
│ ├── lib
│ ├── modules
│ ├── nixos-installer
│ ├── overlays
│ ├── pkgs
│ ├── scripts
│ └── vars
└── home
├── <user>
│ ├── keys
│ └── ...
├── common
├── core
└── optional
目录结构介绍
- envrc: 环境配置文件。
- gitignore: Git 忽略文件配置。
- FUNDING.yaml: 赞助配置文件。
- LICENSE: 项目许可证文件。
- README.md: 项目介绍和使用说明。
- flake.lock: Flake 锁定文件。
- flake.nix: Flake 配置文件,项目的入口点。
- justfile: Just 脚本文件。
- shell.nix: Shell 配置文件。
- dev: 开发相关目录。
- checks: 检查脚本和配置。
- docs: 文档目录。
- home: 用户主目录配置。
- hosts: 主机配置目录。
- lib: 自定义库目录。
- modules: 自定义模块目录。
- nixos-installer: NixOS 安装器配置。
- overlays: 包覆盖配置。
- pkgs: 自定义包目录。
- scripts: 自动化脚本目录。
- vars: 自定义变量目录。
- home: 用户主目录配置。
-
: 特定用户的配置。
- keys: 用户公钥目录。
- common: 共享的用户配置。
- core: 核心用户配置。
- optional: 可选的用户配置。
-
: 特定用户的配置。
2. 项目启动文件介绍
flake.nix
flake.nix
是 Nix-Config 项目的入口文件,负责定义项目的依赖、输出和开发环境。它暴露了一个开发 shell,可以通过 nix develop
或 nix-shell
进入。
shell.nix
shell.nix
是项目的 Shell 配置文件,定义了开发环境的 Shell 配置。
3. 项目配置文件介绍
hosts
目录
hosts
目录包含了各个主机的 NixOS 配置文件。每个主机都有一个对应的配置文件,可以通过 sudo nixos-rebuild switch --flake #<host>
来应用配置。
home
目录
home
目录包含了用户的主目录配置。每个用户都有一个对应的配置文件,这些配置会在主机重建时自动构建。
lib
目录
lib
目录包含了自定义库,用于在整个项目中导入路径时更加简洁。
modules
目录
modules
目录包含了自定义模块,用于为 NixOS 或 Home-Manager 配置启用特殊功能。
overlays
目录
overlays
目录包含了自定义的包覆盖配置,用于修改上游包的行为。
pkgs
目录
pkgs
目录包含了自定义的包,这些包可以共享或上传到上游。
scripts
目录
scripts
目录包含了自动化脚本,用于远程安装和引导 NixOS 和 Nix-Config。
vars
目录
vars
目录包含了自定义变量,主要用于定义主用户在所有主机上的变量。
通过以上介绍,您可以更好地理解和使用 Nix-Config 项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考