Введение в райсы Denix 
Райс (rice) - это attribute set, возвращаемый функцией delib.rice, который включает или отключает определенные конфигурации в зависимости от значения опции ${myconfigName}.rice. Также он передает входящий attribute set в функцию delib.rice в опцию ${myconfigName}.rice.${delib.rice :: name}.
Термин "райс" в жаргоне обозначает настройки системы, которые чаще всего связаны с внешним видом. В контексте Denix райс представляет собой конфигурацию, которую можно применить к любому хосту, и она будет работать корректно.
При этом райсы не являются обязательными - если вы не хотите их использовать, просто не добавляйте опции ${myconfigName}.rices и ${myconfigName}.rice, а также не вызывайте функцию delib.rice.
Наследование 
Райс может наследовать все конфигурации другого райса через атрибут inherits. Кроме того, можно установить inheritanceOnly = true;, чтобы скрыть райс от генерации в delib.configurations, оставив его только для наследования.
Пример трех райсов, где первые два наследуют все конфигурации райса "rounded":
{delib, ...}:
delib.rice {
  name = "black";
  inherits = ["rounded"];
  myconfig.colorscheme = "black";
}{delib, ...}:
delib.rice {
  name = "light";
  inherits = ["rounded"];
  myconfig.colorscheme = "light";
}{delib, ...}:
delib.rice {
  name = "rounded";
  inheritanceOnly = true;
  myconfig.hyprland.rounding = "6";
}Опции 
Для работы райсов ваша конфигурация должна включать опции ${myconfigName}.rice и ${myconfigName}.rices, которые вы задаете самостоятельно в одном из модулей.
Пример минимальной рекомендуемой конфигурации для райсов:
{delib, ...}:
delib.module {
  name = "rices";
  options = with delib; let
    rice = {
      options = riceSubmoduleOptions;
    };
  in {
    rice = riceOption rice;
    rices = ricesOption rice;
  };
  home.always = {myconfig, ...}: {
    assertions = delib.riceNamesAssertions myconfig.rices;
  };
}Другие примеры можно найти в разделе Примеры.