Localtime is a simple daemon for keeping the system timezone up-to-date based on the current location. It uses geoclue2 to determine the current location and systemd-timedated to actually set the timezone.


Localtime is hosted on GitHub. Please report all issues there if you have a GitHub account. Otherwise, just send me an email.


If possible, use your package manager:

Otherwise, follow the instructions below.

Manual Install

$ make
$ sudo make install

User and Group

If you have systemd-sysusers, either reboot or run manually run systemd-sysusers to create the localtimed user and group. If you don't have systemd-sysusers, you'll have to manually create the user and group:

$ ### Only run this if you don't have systemd-sysusers. ###
$ sudo make install-user

Enable and start

$ sudo systemctl enable --now localtime.service



  • geoclue2
  • systemd
  • dbus
  • polkit (to run as a non-root user)


  • go
  • make
  • m4


Localtime is a small, light-weight go daemon for keeping the timezone up-to-date. It uses geoclue2 and systemd-timedated to do all the heavy lifting so it's able to run with minimal privileges. See the project page for more information.