1
1
Fork 0
nixos/options/custom/services/geoclue2.nix
Myned 71d72af36c
geoclue2: add static option
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:45:02 -05:00

55 lines
1.4 KiB
Nix

{
config,
inputs,
lib,
...
}:
with lib; let
cfg = config.custom.services.geoclue2;
in {
options.custom.services.geoclue2 = {
enable = mkOption {default = false;};
static = mkOption {default = true;};
};
config = mkIf cfg.enable {
age.secrets = let
secret = filename: {
file = "${inputs.self}/secrets/${filename}";
owner = "geoclue";
group = "geoclue";
};
in {
"common/geoclue2/geolocation" = mkIf cfg.static (secret "common/geoclue2/geolocation");
};
# https://gitlab.freedesktop.org/geoclue/geoclue
# FIXME: geoclue2 relies on MLS, which is retired
# https://github.com/NixOS/nixpkgs/issues/321121
services.geoclue2 =
{
enable = true;
}
// optionalAttrs cfg.static {
# TODO: Use static source option when merged into unstable
# https://github.com/NixOS/nixpkgs/pull/329654
# Overriden by static source
enable3G = false;
enableCDMA = false;
enableModemGPS = false;
enableNmea = false;
enableWifi = false;
};
# Manually use static source from coordinates
# https://github.com/NixOS/nixpkgs/issues/311595#issuecomment-2247989491
environment.etc = mkIf cfg.static {
"geolocation".source = config.age.secrets."common/geoclue2/geolocation".path;
"geoclue/conf.d/00-config.conf".text = ''
[static-source]
enable=true
'';
};
};
}