Skip to content

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

██╗     ██╗███╗   ███╗ █████╗  ██████╗
██║     ██║████╗ ████║██╔══██╗██╔════╝
██║     ██║██╔████╔██║███████║██║     
██║     ██║██║╚██╔╝██║██╔══██║██║     
███████╗██║██║ ╚═╝ ██║██║  ██║╚██████╗
╚══════╝╚═╝╚═╝     ╚═╝╚═╝  ╚═╝ ╚═════╝

跨平台开发环境,一处配置,处处同步

Nix Flakes Home Manager Supported Platforms Docs


✨ 特性

  • 跨平台统一:一套配置覆盖 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-linuxx86_64-darwin尚未实测,欢迎反馈


📋 目录


🎬 效果预览

LiMac 演示动画


🚀 快速开始

预计时间:3 分钟
前置条件:已安装 git,终端可以访问外部网络(Nix 官方缓存),并且当前用户具有 sudo 权限。

第一步:安装 Nix

Linux (Debian / Ubuntu)

  1. 安装 Nix 包:

    sudo apt install nix
  2. 编辑 /etc/nix/nix.conf,写入基础配置(your_username 替换为你的实际用户名,可通过 whoami 查看):

    sandbox = true
    experimental-features = nix-command flakes
    trusted-users = root your_username
    build-users-group = nixbld
  3. 将当前用户加入 nix-users 组,然后重启电脑使组变更生效:

    sudo usermod -aG nix-users $(whoami)

    重启后可通过 id 命令确认输出中包含 nix-users。若临时想在不重启的情况下继续,可在当前终端执行 newgrp nix-users

macOS (Apple Silicon)

curl -L https://nixos.org/nix/install | sh -s -- --daemon

若遇网络问题或需要设置代理,请参阅 高级 Nix 安装与配置指导

第二步:配置初始化与应用

在克隆好的本仓库根目录下直接运行:

bin/home-manager-setup

脚本会交互式完成:

  1. 检查依赖:确认 Nix、Git 与 Nix daemon 可访问。
  2. 开启 Flakes:自动配置 ~/.config/nix/nix.conf
  3. 生成本地专属配置文件:根据当前系统用户名和平台,在 ~/.config/limac/host.nix 创建配置,并自选启用的 profile(core/Python/Java/C++/AI/嵌入式/容器,默认全部不启用,清单解析自 home/packages.nix)。
  4. 使用 --impure 应用:脚本会带 --impure 运行 home-manager,使 flake 能够读取仓库外的本地配置。
  5. 直接应用:一键应用所有用户包与环境配置。

重复运行脚本时:已有 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 时生效。

第三步:更换默认 Shell

要享受所有 Nix 软件与 Fish 别名,需将终端 Shell 切换为 Home Manager 管理的 Fish:

  • Fish 路径

    • Linux: /home/<username>/.nix-profile/bin/fish
    • macOS: /Users/<username>/.nix-profile/bin/fish
  • 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 设置指导


🛠️ 系统级安装(可选,仅 Linux)

安装系统级 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.nixsystems 包含当前架构 OPERATIONS.md §11.2
Docker 安装后仍需要 sudo newgrp docker 或重新登录 OPERATIONS.md §11.3
微信安装后缺少依赖 sudo apt --fix-broken install OPERATIONS.md §11.4

📖 更多参考


📜 许可证与反馈

License: MIT

如有问题、建议或发现 bug,欢迎通过仓库 issue 反馈。

About

适合全栈/嵌入式/AI 方向、经常在多台设备间切换的开发者。 不用精通 Nix 也能用,改配置就是改列表。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages