Декларативное правило в /etc/hosts через extraActivation, чтобы работала короткая ссылка http://pi:30141 на локальный pi-web (@agegr/pi-web, порт 30141). Идемпотентно.
45 lines
1.5 KiB
Nix
45 lines
1.5 KiB
Nix
{ pkgs, ... }: {
|
|
imports = [ ./apps.nix ./system.nix ];
|
|
|
|
networking.hostName = "poppy";
|
|
|
|
# Локальное короткое имя pi -> 127.0.0.1 для pi-web.
|
|
# Запуск: npm exec @agegr/pi-web@latest --hostname 0.0.0.0 --port 30141
|
|
# Ссылка: http://pi:30141
|
|
# (networking.hosts в nix-darwin отсутствует; /etc/hosts правится
|
|
# идемпотентно через extraActivation — один из хуков, реально
|
|
# вызываемых в activate-скрипте.)
|
|
system.activationScripts.extraActivation.text = ''
|
|
if ! grep -qE '^[0-9.]+[[:space:]]+pi($|[[:space:]])' /etc/hosts; then
|
|
printf '127.0.0.1\tpi # pi-web local alias\n' >> /etc/hosts
|
|
fi
|
|
'';
|
|
system.primaryUser = "mikl";
|
|
system.stateVersion = 7;
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
nix.enable = false;
|
|
|
|
users.users.mikl = {
|
|
home = "/Users/mikl";
|
|
shell = pkgs.zsh;
|
|
};
|
|
|
|
environment.systemPackages = [ pkgs.vim ];
|
|
|
|
# Apply default apps via duti on activation
|
|
system.activationScripts.defaultApps.text = ''
|
|
if [ -f "/Users/mikl/.config/duti/config" ]; then
|
|
${pkgs.duti}/bin/duti -d /Users/mikl/.config/duti/config || true
|
|
fi
|
|
'';
|
|
|
|
home-manager.users.mikl = {
|
|
imports = [ ../../home/kitty.nix ../../home/duti.nix ];
|
|
programs.zsh.shellAliases = {
|
|
switch = "darwin-rebuild switch --flake .#poppy";
|
|
update = "nix flake update && darwin-rebuild switch --flake .#poppy";
|
|
cleanup = "nix-collect-garbage -d";
|
|
};
|
|
};
|
|
}
|