refactor: 重构为多平台多用户架构,全面提升终端体验

- 新增 lib/ 辅助函数(mkNixos/mkDarwin/mkHome),消除硬编码
- 拆分 modules/ 为 nixos/darwin/shared 三层,支持跨平台共享
- 重构 home/ 为 shell/dev/theme 子模块,工具全部迁入用户级
- 深度配置 Tmux/FZF/Atuin/Bat/Eza/Btop/Lazygit/Starship
- 添加 Catppuccin Mocha 统一主题、Nerd Fonts 声明式管理
- 新增 homeConfigurations 输出,支持非 NixOS 系统直装
- 新增 nix-darwin 输入,预留 macOS 扩展路径
- 新增 overlays/ 和 pkgs/ 自定义包基础设施
- 修正 nix-darwin URL(LnL7 → nix-darwin org)
This commit is contained in:
2026-04-03 19:54:17 +08:00
parent 92c6535945
commit e92c7aee31
31 changed files with 827 additions and 391 deletions
+6 -30
View File
@@ -1,40 +1,16 @@
{ config, pkgs, ... }:
{ username, ... }:
let
username = "dev"; # ← 修改此处设置用户名
in
{
# ── 引导 ─────────────────────────────────────────────
# ── Boot ─────────────────────────────────────────────
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# ── 网络 ─────────────────────────────────────────────
networking.hostName = "nixos";
# ── Network ──────────────────────────────────────────
networking.networkmanager.enable = true;
users.users.${username}.extraGroups = [ "networkmanager" ];
# ── 用户 ─────────────────────────────────────────────
users.users.${username} = {
isNormalUser = true;
extraGroups = [
"wheel"
"docker"
"networkmanager"
];
shell = pkgs.zsh;
};
# ── Home Manager ─────────────────────────────────────
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.${username} = import ../../home;
};
# ── sudo ─────────────────────────────────────────────
security.sudo.wheelNeedsPassword = false;
# ── 硬件 ─────────────────────────────────────────────
# 首次安装后生成硬件配置并取消注释:
# ── Hardware ─────────────────────────────────────────
# After first install, generate and uncomment:
# sudo nixos-generate-config --show-hardware-config > hosts/bare/hardware-configuration.nix
# imports = [ ./hardware-configuration.nix ];
+11
View File
@@ -0,0 +1,11 @@
{ username, ... }:
{
# ── macOS host-specific configuration ────────────────
# Uncomment and configure when macOS machine is available.
# Touch ID for sudo
# security.pam.services.sudo_local.touchIdAuth = true;
# system.stateVersion = 5;
}
+1 -26
View File
@@ -1,8 +1,5 @@
{ config, pkgs, ... }:
{ username, ... }:
let
username = "dev"; # ← 修改此处设置用户名
in
{
# ── WSL ──────────────────────────────────────────────
wsl = {
@@ -10,27 +7,5 @@ in
defaultUser = username;
};
networking.hostName = "nixos-wsl";
# ── 用户 ─────────────────────────────────────────────
users.users.${username} = {
isNormalUser = true;
extraGroups = [
"wheel"
"docker"
];
shell = pkgs.zsh;
};
# ── Home Manager ─────────────────────────────────────
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.${username} = import ../../home;
};
# ── sudo ─────────────────────────────────────────────
security.sudo.wheelNeedsPassword = false;
system.stateVersion = "24.11";
}