██╗ ██╗███╗ ███╗ █████╗ ██████╗ ██║ ██║████╗ ████║██╔══██╗██╔════╝ ██║ ██║██╔████╔██║███████║██║ ██║ ██║██║╚██╔╝██║██╔══██║██║ ███████╗██║██║ ╚═╝ ██║██║ ██║╚██████╗ ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝
跨平台开发环境,一处配置,处处同步
- 跨平台统一:一套配置覆盖 Linux、macOS 与 WSL2。
- 声明式环境:基于 Nix Flakes,环境可复现、可版本控制。
- Home Manager:集中管理 Shell、Git、工具链与 dotfiles。
- 自动 Host 生成:运行一条脚本即可在
~/.config/limac/host.nix生成属于你的本地配置。 - 分领域包管理:AI、Python、Java、C++、嵌入式、容器、IDE 按需启用。
- 系统级 GUI 安装:Ansible 一键安装 Docker、Chrome、VSCode、微信(仅 Linux)。
- 内置维护工具:
nix fmt格式化、bin/update-flake更新依赖。
| 系统 | 状态 | 说明 |
|---|---|---|
x86_64-linux |
✅ 已验证 | 主流 Linux 桌面/服务器(Debian、Ubuntu 已验证) |
| WSL2 | ✅ 已验证 | Windows Subsystem for Linux 2(Debian、Ubuntu、Deepin 已验证) |
aarch64-darwin |
✅ 已验证 | Apple Silicon Mac(M2/M3) |
aarch64-linux |
⏳ 未验证 | ARM Linux,理论上支持 |
x86_64-darwin |
⏳ 未验证 | Intel Mac,理论上支持 |
aarch64-linux和x86_64-darwin尚未实测,欢迎反馈
预计时间:3 分钟
前置条件:已安装git,终端可以访问外部网络(Nix 官方缓存),并且当前用户具有sudo权限。
-
安装 Nix 包:
sudo apt install nix
-
编辑
/etc/nix/nix.conf,写入基础配置(将your_username替换为你的实际用户名,可通过whoami查看):sandbox = true experimental-features = nix-command flakes trusted-users = root your_username build-users-group = nixbld
-
将当前用户加入
nix-users组,然后重启电脑使组变更生效:sudo usermod -aG nix-users $(whoami)重启后可通过
id命令确认输出中包含nix-users。若临时想在不重启的情况下继续,可在当前终端执行newgrp nix-users。
curl -L https://nixos.org/nix/install | sh -s -- --daemon若遇网络问题或需要设置代理,请参阅 高级 Nix 安装与配置指导。
在克隆好的本仓库根目录下直接运行:
bin/home-manager-setup脚本会交互式完成:
- 检查依赖:确认 Nix、Git 与 Nix daemon 可访问。
- 开启 Flakes:自动配置
~/.config/nix/nix.conf。 - 生成本地专属配置文件:根据当前系统用户名和平台,在
~/.config/limac/host.nix创建配置,并自选启用的 profile(core/Python/Java/C++/AI/嵌入式/容器,默认全部不启用,清单解析自home/packages.nix)。 - 使用
--impure应用:脚本会带--impure运行 home-manager,使 flake 能够读取仓库外的本地配置。 - 直接应用:一键应用所有用户包与环境配置。
重复运行脚本时:已有
host.nix会询问是否重新选择 profile(默认保持);旧配置缺少 profiles 块会引导自选补齐。
非交互模式(适合脚本化/自动化装机):
bin/home-manager-setup --profiles core,python --git-name "你的名字" --git-email you@example.com完整参数见 bin/home-manager-setup --help;--git-name/--git-email 仅在首次生成 host.nix 时生效。
要享受所有 Nix 软件与 Fish 别名,需将终端 Shell 切换为 Home Manager 管理的 Fish:
-
Fish 路径:
- Linux:
/home/<username>/.nix-profile/bin/fish - macOS:
/Users/<username>/.nix-profile/bin/fish
- Linux:
-
WSL2 推荐做法:直接将其设为登录 Shell:
sudo sh -c "echo $(realpath ~/.nix-profile/bin/fish) >> /etc/shells" chsh -s ~/.nix-profile/bin/fish
退出后执行
wsl --shutdown,重新进入 WSL 即可生效。
具体终端如 Konsole、iTerm2 或 VS Code 终端的切换步骤,请参考 终端 Shell 设置指导。
安装系统级 GUI 工具(Docker、Chrome、VSCode、微信),直接运行:
bin/install-via-ansible| 目的 | 命令 | 说明 |
|---|---|---|
| 格式化配置 | nix fmt |
格式化所有 Nix 文件 |
| 升级所有依赖 | bin/update-flake |
更新 flake.lock 并创建备份 |
| 应用更新(Linux/macOS) | nix run "nixpkgs#home-manager" -- switch --flake .#<system> --impure |
修改配置后重新应用,如 #x86_64-linux、#aarch64-darwin |
| 检查 Flake 结构 | nix flake check --no-build |
验证配置语法与结构 |
| 查看所有配置名 | nix flake show |
列出 flake 提供的所有 outputs |
| 查看 Home Manager 新闻 | home-manager news |
查看更新日志与提示 |
| 问题 | 快速解决 | 详情 |
|---|---|---|
| Nix 提示找不到本地 host 文件 | 确认 ~/.config/limac/host.nix 存在,且命令带 --impure |
OPERATIONS.md §11.1 |
nix fmt 报错 does not provide attribute 'formatter...' |
确认 flake.nix 的 systems 包含当前架构 |
OPERATIONS.md §11.2 |
Docker 安装后仍需要 sudo |
newgrp docker 或重新登录 |
OPERATIONS.md §11.3 |
| 微信安装后缺少依赖 | sudo apt --fix-broken install |
OPERATIONS.md §11.4 |
- 项目结构、高级定制、如何新增软件包或用户:➡️ 操作手册 (docs/OPERATIONS.md)
如有问题、建议或发现 bug,欢迎通过仓库 issue 反馈。
