diff --git a/hosts/by-name/moby/gps.nix b/hosts/by-name/moby/gps.nix index 04391f03..82d5e61c 100644 --- a/hosts/by-name/moby/gps.nix +++ b/hosts/by-name/moby/gps.nix @@ -40,10 +40,6 @@ { config, lib, ... }: { - # test gpsd with `gpspipe -w -n 10 2> /dev/null | grep -m 1 TPV | jq '.lat, .lon' | tr '\n' ' '` - # ^ should return - services.gpsd.enable = true; - services.gpsd.devices = [ "/dev/ttyUSB1" ]; users.users.geoclue.extraGroups = [ "dialout" # TODO: figure out if dialout is required. that's for /dev/ttyUSB1, but geoclue probably doesn't read that? diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix index 812d703e..0ab18a35 100644 --- a/hosts/common/programs/default.nix +++ b/hosts/common/programs/default.nix @@ -63,6 +63,7 @@ ./gnome-weather.nix ./go2tv.nix ./gpodder.nix + ./gpsd.nix ./grimshot.nix ./gst-device-monitor.nix ./gthumb.nix diff --git a/hosts/common/programs/gpsd.nix b/hosts/common/programs/gpsd.nix new file mode 100644 index 00000000..4b5543ea --- /dev/null +++ b/hosts/common/programs/gpsd.nix @@ -0,0 +1,15 @@ +# test gpsd with `gpspipe -w -n 10 2> /dev/null | grep -m 1 TPV | jq '.lat, .lon' | tr '\n' ' '` +# ^ should return +# +# TODO(2024/06/19): nixpkgs' gpsd service isn't sandboxed at ALL. i should sandbox that, or remove this integration. +{ config, lib, ... }: +let + cfg = config.sane.programs.gpsd; +in +{ + sane.programs.gpsd = {}; + services.gpsd = lib.mkIf cfg.enabled { + enable = true; + devices = [ "/dev/ttyUSB1" ]; + }; +} diff --git a/hosts/common/programs/mepo.nix b/hosts/common/programs/mepo.nix index d0bb705d..f46c445a 100644 --- a/hosts/common/programs/mepo.nix +++ b/hosts/common/programs/mepo.nix @@ -16,13 +16,11 @@ { type = "file"; path = ".cache/mepo/savestate"; } ]; - # enable geoclue2 integration, - # and give mepo access to gpsd for location data, if that's enabled. - # TODO: this gpsd stuff should be moved to its own file! + # enable geoclue2 and gpsd for location data. suggestedPrograms = [ "geoclue2" - ] ++ lib.optional config.services.gpsd.enable "gpsd" - ; + "gpsd" + ]; }; # programs.mepo = lib.mkIf config.sane.programs.mepo.enabled {