usr/default.nix
home-manager的入口配置文件,它导入了:
因为部分系统不需要GUI程序,比如安卓手机nix-on-droid或是树莓派等。
我利用环境变量DISPLAY用于判断是否导入GUI程序的配置。
{ config, ... }: {
imports = [
./modules
./cli
./gui
];
home.stateVersion = "25.05";
news.display = "silent";
programs.zsh.initContent = ''
. ${toString ../scripts/bootstrap/main.sh}
'';
# envExtra gives non-interactive zsh, such as ssh 'cmd', the existing pin paths.
# initContent runs the heavier bootstrap repair only for interactive shells.
programs.zsh.envExtra = /*bash*/ ''
if [[ -e "$HOME/.config/npins/nixpkgs" && -e "$HOME/.config/npins/home-manager" ]]; then
export NIX_PATH="nixpkgs=$HOME/.config/npins/nixpkgs:home-manager=$HOME/.config/npins/home-manager${
if config.isNixOnDroid
then ":nix-on-droid=$HOME/.config/npins/nix-on-droid"
else ":nixos-config=/etc/nixos/configuration.nix"
}"
fi
'';
}