nixos/iwd: fix DriverQuirks.DefaultInterface config option

[DriverQuirks].DefaultInterface option accepts a comma-separated list of drivers
or glob matches as its value.
This commit is contained in:
Hoang Nguyen
2025-08-25 13:43:31 +07:00
parent 36afa211de
commit cc1251b631

View File

@@ -13,17 +13,18 @@ let
mkOption
types
recursiveUpdate
optionalAttrs
;
cfg = config.networking.wireless.iwd;
ini = pkgs.formats.ini { };
defaults = {
# without UseDefaultInterface, sometimes wlan0 simply goes AWOL with NetworkManager
# https://iwd.wiki.kernel.org/interface_lifecycle#interface_management_in_iwd
DriverQuirks.UseDefaultInterface =
with config.networking.networkmanager;
(enable && (wifi.backend == "iwd"));
};
defaults =
with config.networking.networkmanager;
optionalAttrs (enable && (wifi.backend == "iwd")) {
# without DefaultInterface, sometimes wlan0 simply goes AWOL with NetworkManager
# https://iwd.wiki.kernel.org/interface_lifecycle#interface_management_in_iwd
DriverQuirks.DefaultInterface = "?*";
};
configFile = ini.generate "main.conf" (recursiveUpdate defaults cfg.settings);
in
@@ -64,7 +65,7 @@ in
{
assertion = !(cfg.settings ? General && cfg.settings.General ? UseDefaultInterface);
message = ''
`networking.wireless.iwd.settings.General.UseDefaultInterface` has been deprecated. Use `networking.wireless.iwd.settings.DriverQuirks.UseDefaultInterface` instead.
`networking.wireless.iwd.settings.General.UseDefaultInterface` has been deprecated. Use `networking.wireless.iwd.settings.DriverQuirks.DefaultInterface` instead.
'';
}
];