Useful Nix

Изменение приоритетов

Иногда, при изменении конфигурации, возникает конфиликт, если один и тот же параметр определяется сразу в нескольких местах. Это помогают решить две функции из стандартной библиотеки - 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;

On this page