Skip to content

Введение в модули Denix

Модуль Denix - это тот же самый модуль NixOS или Home Manager, но его attribute set обёрнут в функцию delib.module.

Отсутствие ограничений

Это означает, что вы можете использовать все три варианта модулей одновременно, хотя маловероятно, что вам понадобятся другие варианты, кроме первого:

Denix модуль

nix
{delib, ...}:
delib.module {
  name = "...";
}

Denix модуль, дополненный NixOS/Home Manager модулем

nix
{delib, ...}:
delib.module {
  name = "...";
} // {

}

Только NixOS/Home Manager модуль

nix
{

}

Простота и чистота

Модули Denix в большинстве случаев выглядят проще и чище, чем модули NixOS/Home Manager, по следующим причинам:

  1. Простое, но при этом полноценное декларирование опций (см. Опции).
  2. Встроенная логика разделения конфигураций в зависимости от значения опции ${delib.module :: name}.enable: always, ifEnabled, ifDisabled.
  3. Общие опции, но разделённые конфигурации для NixOS, Home Manager и собственных опций.