# configuration.nix 基础

# 启动引导

可以用 systemd-boot 或者 grub 引导,如果是 systemd-boot 双系统,可能需要自己添加 windows 的引导

下面是使用 systemd-boot 的例子:

 # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

下面是使用 grub 的例子:

 # Use GRand Unified Bootloader
  boot.loader = {
    efi.canTouchEfiVariables = true;
    grub = {
      enable = true;
      version = 2;
      device = "nodev";
      useOSProber = true;
      efiSupport = true;
    };
  };

# 声音

 # Enable sound.
  sound.enable = true;
  hardware.pulseaudio.enable = true;

# 触摸板

# Enable touchpad support (enabled default in most desktopManager).
  services.xserver.libinput.enable = true;

# 软件源配置

使用镜像源,软件下载速度更快

  nix.binaryCaches = [ 
      "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store"
      "https://mirror.sjtu.edu.cn/nix-channels/store"
      "https://mirrors.ustc.edu.cn/nix-channels/store"
  ];

# 时区

设置为上海

time.timeZone =Asia/Shanghai

# 桌面环境

使用 KDE 桌面

 # Enable the Plasma 5 Desktop Environment.
  services.xserver.enable = true;
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;

你也可以使用 GNOME 桌面:

services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true; 
services.xserver.desktopManager.gnome3.enable = true;

# 本地化

支持中文,输入法使用 fcxit

i18n = {
    defaultLocale = "zh_CN.UTF-8";
    supportedLocales = [ "zh_CN.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" ];
    inputMethod.enabled = "fcitx";
  };

# 配置字体

fonts = {
        enableDefaultFonts = true;
        fontconfig.enable = true;
        enableFontDir = true;
        enableGhostscriptFonts = true;
        fonts = with pkgs; [
            sarasa-gothic
            noto-fonts
            noto-fonts-cjk
            noto-fonts-emoji
            wqy_microhei
            wqy_zenhei
        ];
  };

# 用户配置

  # 假设用户名是 alice
   users.users.alice = {
     isNormalUser = true;
     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
   };

配置完成后需要用 passwd 为用户设置密码.

# 系统版本

  system.stateVersion = "22.05";

system.stateVersion 影响系统的默认配置等,修改这个参数不会让你的系统升级,请保持与系统版本(nixos-version可以查看)一致