feat: NixOS 声明式配置(从 Arch + decman 迁移)
- flake.nix: NixOS + home-manager + nixos-wsl 三输入 - hosts/wsl + hosts/bare: WSL 与裸机共享模块,分主机配置 - modules/: base(CLI 工具) + dev(工具链+LSP) + docker + locale + shell - home/: zsh(oh-my-zsh+插件+别名) + git(delta) + starship + 工具集成 - scripts/install.sh: 一键安装脚本(WSL/裸机通用) - 原 bun/go 全局包 hack 改为 nixpkgs 声明式管理
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
username = "dev"; # ← 修改此处设置用户名
|
||||
in
|
||||
{
|
||||
# ── 引导 ─────────────────────────────────────────────
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# ── 网络 ─────────────────────────────────────────────
|
||||
networking.hostName = "nixos";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# ── 用户 ─────────────────────────────────────────────
|
||||
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;
|
||||
|
||||
# ── 硬件 ─────────────────────────────────────────────
|
||||
# 首次安装后生成硬件配置并取消注释:
|
||||
# sudo nixos-generate-config --show-hardware-config > hosts/bare/hardware-configuration.nix
|
||||
# imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
username = "dev"; # ← 修改此处设置用户名
|
||||
in
|
||||
{
|
||||
# ── WSL ──────────────────────────────────────────────
|
||||
wsl = {
|
||||
enable = true;
|
||||
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";
|
||||
}
|
||||
Reference in New Issue
Block a user