Установка Home Manager
С использованием Nix Flakes (рекомендуется) рекомендуется
У нас есть 2 спосаба установки:
- Автономная (standalone) установка. Рекомендуется, если вы хотите управлять своим домашним каталогом независимо от системы
- В качестве модуля NixOS. Это позволяет собирать профиль пользователя вместе с
nixos-rebuild
Автономная (standalone) установка рекомендуется
Запустите следующую команду для инициализации Home Manager
# Для unstable ветки
$ nix run home-manager/master -- init
# Для любого другого релиза
$ nix run home-manager/release-<version> -- init # Например, release-24.11
Это создаст в ~/.config/home-manager/ 2 файла - home.nix
и flake.nix
. Теперь вы можете отредактировать ваш флейк, добавив в outputs
homeConfigurations...
из инициализорованного флейка. Также не забудьте добавить Home Manager в inputs
вашего флейка (также можно взять из инициализированного). Затем отредактируйте home.nix
в соответствии с вашими потребностями. Пример минимального здесь. После того, как вы завершите начальную настройку, выполните (не забудьте перед этим обновить ваш флейк)
# Короткая версия
$ home-manager switch
# Длинная версия, если вам нужно указать путь к флейку или имя пользователя
$ home-manager switch --flake ~/path/to/your/nix/directory#<your username>
Установка модулем NixOS
Добавьте следующее в inputs
вашего флейка:
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
После, добавьте в outputs
, поле nixosConfigurations.<hostname>.modules
:
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.<username> = import ./home.nix; # Укажите путь к вашему home.nix
# Вы также можете передать home-manager.specialArgs для передачи каких либо аргументов в home.nix
}
Пример минимального
home.nix
здесь
Теперь конфигурация Home Manager становится частью конфигурации NixOS и автоматически пересобирается вместе с системой при использовании
$ nixos-rebuild switch --flake <flake path>
Без использования Nix Flakes
Здесь есть 2 спосба устанвки, те же самые, что и с флейками.
Автономная (standalone) установка рекомендуется
Для начала вам нужно убедиться, что вы можете выполнить такую команду, как nix-instantiate '<nixpkgs>' -A hello
без прав администратора. За это отвечает опция nix.settings.allowed-users
.
Теперь можно приступать. Добавим канал Home Manager в систему:
# Для unstable ветки
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
# Для любого другого релиза
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-<version>.tar.gz home-manager # Например, release-24.11
$ nix-channel --update
Теперь добавьте home-manager
в список пакетов системы
environment.systemPackages = with pkgs; [ home-manager ];
И пересоберите её командой nixos-rebuild switch
Установка модулем NixOS
Добавим канал Home Manager в систему:
# Для unstable ветки
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
# Для любого другого релиза
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-<version>.tar.gz home-manager # Например, release-24.11
$ nix-channel --update
Теперь вы можете добавить следующее в конфигурацию системы:
imports = [ <home-manager/nixos> ];
home-manager.users.<username> = { pkgs, ... }: {
home = {
username = "<username>";
homeDirectory = "/home/som";
stateVersion = "24.05";
};
};
Наконец, просто пересоберите систему командой nixos-rebuild switch
Если после пересборки что-то пойдет не так, выполните
shell$ systemctl status "home-manager-<username>.service"
чтобы посмотреть вывод сценария пересборки