Изменение приоритетов
Иногда, при изменении конфигурации, возникает конфиликт, если один и тот же параметр определяется сразу в нескольких местах. Это помогают решить две функции из стандартной библиотеки - mkForce
и mkDefault
. Вообще, обе эти функции происходят от одной mkOverride
, которая принимает два аргумента - число и значение. Когда система обнаруживает конфликт в вашей конфигурации, mkOverride по переданному числу решает, какой будет приоритет у той или иной опции (чем ниже значение, тем больше приоритет). Стандартный приоритет - 100.
mkForce
Эта функция устанавливает переданному значению приоритет 50 (почти максимальный)
mkForce = mkOverride 50;
mkDefault
Эта функция устанавливает приоритет в 1000 (почти минимальный)
mkDefault = mkOverride 1000;
Другие функции приоритета
Помимо этих, есть еще 2 обертки над mkOverride
: mkOptionDefault
и mkVMOverride
. Соответственно равны 1500 и 10.
Пример использования
Например, некоторые оконные менеджеры (sway) могут устанавливать значение programs.xwayland.enable
на true
. Чтобы избежать этого, вы можете использовать
programs.xwayland.enable = lib.mkForce false;