Nix Starter Configs 项目教程
1. 项目的目录结构及介绍
nix-starter-configs/
├── LICENSE
├── README.md
├── flake.lock
├── flake.nix
├── home-manager
│ └── home.nix
└── nixos
└── configuration.nix
- LICENSE: 项目的许可证文件,采用CC0-1.0许可证。
- README.md: 项目说明文档,包含项目的基本介绍和使用方法。
- flake.lock: 锁定文件,确保依赖版本一致性。
- flake.nix: 主配置文件,定义了项目的依赖和输出。
- home-manager/home.nix: Home Manager的配置文件,用于管理用户环境。
- nixos/configuration.nix: NixOS的系统配置文件,用于系统级别的配置。
2. 项目的启动文件介绍
flake.nix
flake.nix
是项目的主配置文件,定义了项目的依赖和输出。以下是文件的基本结构:
{
description = "Nix Starter Configs";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
home-manager.url = "github:nix-community/home-manager";
};
outputs = { self, nixpkgs, home-manager }: {
nixosConfigurations = {
hostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./nixos/configuration.nix
];
};
};
homeManagerConfigurations = {
username = home-manager.lib.homeManagerConfiguration {
configuration = ./home-manager/home.nix;
};
};
};
}
- description: 项目描述。
- inputs: 定义项目的依赖,如
nixpkgs
和home-manager
。 - outputs: 定义项目的输出,包括
nixosConfigurations
和homeManagerConfigurations
。
3. 项目的配置文件介绍
nixos/configuration.nix
nixos/configuration.nix
是 NixOS 的系统配置文件,用于系统级别的配置。以下是文件的基本结构:
{ config, pkgs, ... }:
{
boot.loader.grub.enable = true;
boot.loader.grub.version = 2;
boot.loader.grub.device = "/dev/sda";
fileSystems."/".device = "/dev/sda1";
environment.systemPackages = with pkgs; [
vim
git
];
users.users.username = {
isNormalUser = true;
extraGroups = [ "wheel" ];
password = "password";
};
system.stateVersion = "21.11";
}
- boot.loader: 定义启动加载器。
- fileSystems: 定义文件系统挂载点。
- environment.systemPackages: 定义系统包。
- users.users: 定义用户。
- system.stateVersion: 定义系统状态版本。
home-manager/home.nix
home-manager/home.nix
是 Home Manager 的配置文件,用于管理用户环境。以下是文件的基本结构:
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
vim
git
];
programs.bash.enable = true;
programs.bash.shellAliases = {
ll = "ls -l";
};
home.file.".config/example".source = ./path/to/example;
home.stateVersion = "21.11";
}
- home.packages: 定义用户包。
- programs.bash: 定义 Bash 配置。
- home.file: 定义文件路径和源。
- home.stateVersion: 定义用户状态版本。
以上是 nix-starter-configs
项目的基本教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!