Size: a a a

2020 September 20

VL

Valerii Leontiev in NixOS
nix-shell '<home-manager>' -A install

Не очень понимаю ещё, что вот здесь происходит
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
Есть какие-то рекомендации, как принято?
Или все по-разному делают?
Я делаю модулем, потому что хочу максимальную воспроизводимость всей системы. Всё что можно управлять хоум менеджером, я управляю хоум менеджером, остальное ставлю system wide.

Т.е. у меня примерно такой общий подход:
- то что касается конкретного проекта идёт в shell.nix/flake.nix в папке с проектом.
- то, что мне нужно независимо от проектов идёт в конфигурацию системы, если есть возможность, то в качестве home-manager опции, если такой нет, то уже использую системные опции.
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
nix-shell '<home-manager>' -A install

Не очень понимаю ещё, что вот здесь происходит
тут ты эвалишь аттрибут install из https://github.com/nix-community/home-manager/blob/master/default.nix
источник

VL

Valerii Leontiev in NixOS
Andrew Tropin
Я делаю модулем, потому что хочу максимальную воспроизводимость всей системы. Всё что можно управлять хоум менеджером, я управляю хоум менеджером, остальное ставлю system wide.

Т.е. у меня примерно такой общий подход:
- то что касается конкретного проекта идёт в shell.nix/flake.nix в папке с проектом.
- то, что мне нужно независимо от проектов идёт в конфигурацию системы, если есть возможность, то в качестве home-manager опции, если такой нет, то уже использую системные опции.
То есть, чтобы сделать Хоум менеджер для хомяка, шел в хомяке не обязательно создавать?
Я канал добавил, согласно доке, как дальше действовать?
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
То есть, чтобы сделать Хоум менеджер для хомяка, шел в хомяке не обязательно создавать?
Я канал добавил, согласно доке, как дальше действовать?
ты хочешь модулем или чтобы home-manager отдельно nixos-rebuild отдельно?
источник

AT

Andrew Tropin in NixOS
во втором случае тебе нужно будет два конфига, системный и для юзера и соответственно две команды nixos-rebuild switch и home-manager switch.
источник

VL

Valerii Leontiev in NixOS
Andrew Tropin
ты хочешь модулем или чтобы home-manager отдельно nixos-rebuild отдельно?
Первый вариант, пожалуй. Модулем
источник

AT

Andrew Tropin in NixOS
https://rycee.gitlab.io/home-manager/index.html#sec-install-nixos-module

Добавляешь imports в configuration.nix, пользуешься опциями как в примере после этого.
Опции смотреть по man home-configuration.nix
источник

VL

Valerii Leontiev in NixOS
Andrew Tropin
https://rycee.gitlab.io/home-manager/index.html#sec-install-nixos-module

Добавляешь imports в configuration.nix, пользуешься опциями как в примере после этого.
Опции смотреть по man home-configuration.nix
Ага, спасибо.
Можешь пожалуйста написать, как, например, виму задать путь до инит файла таким способом? Чтобы я понял механику процесса
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
Ага, спасибо.
Можешь пожалуйста написать, как, например, виму задать путь до инит файла таким способом? Чтобы я понял механику процесса
https://github.com/abcdw/rde/blob/master/src/modules/emacs/default.nix#L192

смотри вот этот пример и на 197 строке. В одном случае текст указываешь, а в другом файл.

Можно ещё .text = readFile ./init.el;

"${cfg.files.init}" - это путь относительный или абсолютный, например ".vim/vimrc"

эта штука создаст в никс сторе файл с указаным содержимым, а потом создаст символическую ссылку на него. ln -s /nix/store/LONG_PATH ~/.vim/vimrc
источник

VL

Valerii Leontiev in NixOS
Andrew Tropin
https://github.com/abcdw/rde/blob/master/src/modules/emacs/default.nix#L192

смотри вот этот пример и на 197 строке. В одном случае текст указываешь, а в другом файл.

Можно ещё .text = readFile ./init.el;

"${cfg.files.init}" - это путь относительный или абсолютный, например ".vim/vimrc"

эта штука создаст в никс сторе файл с указаным содержимым, а потом создаст символическую ссылку на него. ln -s /nix/store/LONG_PATH ~/.vim/vimrc
Спасибо
Синтаксис какой-то ужас
Боже, кто придумал этот язык?)
Как в этом можно разобраться?
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
Спасибо
Синтаксис какой-то ужас
Боже, кто придумал этот язык?)
Как в этом можно разобраться?
Синтаксис специфичный да, но дело привычки, в целом не хуже чем всякие С-подобные.
источник

VL

Valerii Leontiev in NixOS
Andrew Tropin
Синтаксис специфичный да, но дело привычки, в целом не хуже чем всякие С-подобные.
home-manager.users."${username}" = { home.file."${cfg.files.init}".text = '' (require 'rde-variables) (require 'rde-configs) (provide 'init) ''; home.file."${cfg.files.early-init}".source = ./early-init.el;


Вообще ничего не понял, что здесь происходит)
источник

VL

Valerii Leontiev in NixOS
Ещё и уехало(
источник

VL

Valerii Leontiev in NixOS
programs.vim = { enable = true; plugins = with pkgs.vimPlugins; [ vim-airline ]; settings = { ignorecase = true; }; extraConfig = '' set mouse=a ''; };
источник

VL

Valerii Leontiev in NixOS
Вот Дока чего говорит
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
programs.vim = { enable = true; plugins = with pkgs.vimPlugins; [ vim-airline ]; settings = { ignorecase = true; }; extraConfig = '' set mouse=a ''; };
home-manager.users.YOUR-USER = { ТО ЧТО В СООБЩЕНИИ ВЫШЕ };
источник

VL

Valerii Leontiev in NixOS
Но это просто жесть)
Что за разделение на settings и extraConf?
источник

VL

Valerii Leontiev in NixOS
Зачем делать enable=true?
источник

AT

Andrew Tropin in NixOS
Valerii Leontiev
Зачем делать enable=true?
чтобы ты мог легко отключать ненужные тебе наборы опций.

то что в settings конвертнётся в твой валидный синтаксис для vimrc, а extraConfig - это то, что просто добавится в конец. Нужно это например для того, чтобы ты мог использовать перемённую и в настройке вима и терминала. А extraConfig нужен на случай, если ты что-то не можешь или не хочешь выражать в терминах settings.
источник