diff --git a/nixos/modules/services/desktops/geoclue2.nix b/nixos/modules/services/desktops/geoclue2.nix index b9d423acf9f3..ec7afa03c656 100644 --- a/nixos/modules/services/desktops/geoclue2.nix +++ b/nixos/modules/services/desktops/geoclue2.nix @@ -8,11 +8,6 @@ let cfg = config.services.geoclue2; - defaultWhitelist = [ - "gnome-shell" - "io.elementary.desktop.agent-geoclue2" - ]; - appConfigModule = lib.types.submodule ( { name, ... }: { @@ -85,6 +80,16 @@ in that provides location information for accessing. ''; }; + whitelistedAgents = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ + "gnome-shell" + "io.elementary.desktop.agent-geoclue2" + ]; + description = '' + Desktop IDs (without the .desktop extension) of whitelisted agents. + ''; + }; enableDemoAgent = lib.mkOption { type = lib.types.bool; @@ -321,7 +326,10 @@ in { agent = { whitelist = lib.concatStringsSep ";" ( - lib.optional cfg.enableDemoAgent "geoclue-demo-agent" ++ defaultWhitelist + lib.lists.unique ( + cfg.whitelistedAgents + ++ lib.optionals config.services.geoclue2.enableDemoAgent [ "geoclue-demo-agent" ] + ) ); }; network-nmea = {