automatic-timezoned 1.0.4

Automatically update system timezone based on location
automatic-timezoned-1.0.4 is not a library.

Automatic Timezone Daemon

A Linux daemon to automatically update the system timezone based on location.

How It Works

  1. The list of timezones and their location is loaded from the zone1970.tab file
  2. The current location is retrieved from GeoClue
  3. The distance between the current location and each timezone is calculated with the Haversine formula
  4. The shortest distance determines the current timezone set via systemd-timedated
  5. Then, the daemon waits for the location updated signal from GeoClue, and repeats from step 2 when it happens

Note: The timezone choice may not be accurate if a reference city in a neighboring timezone is closer than any one in the actual timezone.

Requirements

Please see the examples/ directory for sample configurations.

Sample Nix modules can be found here (may be submitted to NixOS/nixpkgs if there is interest):

Configuration

Please see:

automatic-timezoned --help

Development

Build

cargo build --release

Test

cargo test

Alternatives

This service depends on the tzdata package which allows to update the Time Zone Database independently and does not depend on a third-party service to calculate distances, here are some alternatives which have made different trade-offs for performance and accuracy:

License

GNU General Public License v3.0