Night light and location tracking via geoclue2

I am having trouble in getting the Day-Night cycle > Automatically detect location to determine the sunrise and sunset times based on device location.

My system details:

Operating System: OpenSUSE Slowroll 260504
KDE Plasma Version: 6.6.5
KDE Frameworks Version: 6.25.0
Qt Version: 6.11.0
Kernel Version: 7.0.10-2.0.16.sr20260504-default (64-bit)
Graphics Platform: Wayland

Based on searches for a resolution to this issue, I have checked the configuration of /etc/geoclue/geoclue.conf, relevant parts of which I’ve reproduced below

# Configuration file for Geoclue
#
# NOTE: All configurations settings below are mandatory and the defaults are
#       what you see before you edit them. If you want to keep the default
#       values around, copy and comment out the appropriate line(s) before
#       changing them.

# Agent configuration options
[agent]

# Whitelist of desktop IDs (without .desktop part) of all agents we recognise,
# separated by a ';'.
whitelist=geoclue-demo-agent;gnome-shell;io.elementary.desktop.agent-geoclue2;sm.puri.Phosh;lipstick

# IP source configuration options
[ip]

# Enable the GeoIP source
enable=true

# Method (backend) to use for IP location. Currently implemented are:
# 'ichnaea': Use the Ichnaea (MLS) API with the URL from the wifi source.
# 'gmaps': Use the location determined by Google Maps.
# 'reallyfreegeoip': reallyfreegeoip.org. Fixed accuracy, see accuracy option below.
method=ichnaea

# Optional overrides to method defaults:
#
# Alternative server URL
#url=https://example.com/v1/geolocate
#
# Override the accuracy value from method
#accuracy=30000.0

# Network NMEA source configuration options
[network-nmea]

# Fetch location from NMEA sources on local network?
enable=true

# Use an NMEA unix socket as the data source
# nmea-socket=/var/run/gps-share.sock

# 3G source configuration options
[3g]

# Enable 3G source
enable=true

# CDMA source configuration options
[cdma]

# Enable CDMA source
enable=true

# Modem GPS source configuration options
[modem-gps]

# Enable Modem GPS source
enable=true

# WiFi source configuration options
[wifi]

# Enable WiFi source
enable=true

# URL to a WiFi geolocation service compatible with the Ichnaea API
# (https://ichnaea.readthedocs.io/en/latest/api/geolocate.html).
# An API key can be set by using the 'key' URL parameter.
# If unset, defaults to an URL defined at build-time,
# this URL is 'https://api.beacondb.net/v1/geolocate''
#url=https://example.com/v1/geolocate?key=YOUR_KEY

# To use the BeaconDB geolocation service, uncomment this URL.
#url=https://api.beacondb.net/v1/geolocate

The [wifi] section suggests that the default build-time url is set to https://api.beacondb.net/v1/geolocate which may explain why the url line is later commented.

For brevity, I have skipped the sections on alternative geolocation services, submit-data, compass and static source. The final section on Application configuration is reproduced below:

# Application configuration options
#
# NOTE: Having an entry here for an application with allowed=true means that
#       geoclue will not ask agent to authorize the application. This is to
#       ensure that applications with built-in authorization mechanism (e.g web
#       browsers) do not have to be bound to agents.
#
#       If your application is denied access to location information and your
#       operating system doesn't provide any mechanism to change that, it is
#       likely a bug in your operation system (or geoclue). The solution is to
#       report the issue with all details, rather than adding your application
#       to this list.
#
# Format:
#
# # Desktop ID of application without .desktop part
# [random-app]
#
# # Allowed access to location information?
# allowed=true|false
#
# # Is application a system component?
# system=true|false
#
# # List of UIDs of all users for which this application is allowed location
# # info access, separate by ';'. Keep it empty for allowing it for all users.
# users=

[gnome-datetime-panel]
allowed=true
system=true
users=

[gnome-color-panel]
allowed=true
system=true
users=

[org.gnome.Shell]
allowed=true
system=true
users=

[io.elementary.desktop.agent-geoclue2]
allowed=true
system=true
users=

[sm.puri.Phosh]
allowed=true
system=true
users=

I noticed that it was missing an entry for the agent geoclue-demo-agent.

I left the geoclue.conf file untouched and included the following config changes within a drop-in at /etc/geoclue/conf.d/90-beacondb.conf:

#WiFi source configuration options
[wifi]
enable=true
url=https://api.beacondb.net/v1/geolocate

#Application configuration options
[geoclue-demo-agent]
allowed=true
system=true
users=

Despite this, the geoclue.service doesn’t seem to retrieve the location, or perhaps it is retrieving the location but not doing anything with it. The systemd log is as follows:

❯ sudo systemctl status geoclue
○ geoclue.service - Location Lookup Service
Loaded: loaded (/usr/lib/systemd/system/geoclue.service; static)
Active: inactive (dead)

Jun 10 15:41:33 lp7suse systemd[1]: Starting Location Lookup Service…
Jun 10 15:41:33 lp7suse systemd[1]: Started Location Lookup Service.
Jun 10 15:42:33 lp7suse geoclue[897443]: Service not used for 60 seconds. Shutting down..
Jun 10 15:42:33 lp7suse systemd[1]: geoclue.service: Deactivated successfully.

However, when I run the companion app /usr/libexec/geoclue-2.0/demos/where-am-i, it returns the correct location as follows:

❯ /usr/libexec/geoclue-2.0/demos/where-am-i

(where-am-i:1214645): GLib-CRITICAL **: 17:34:52.810: g_atomic_ref_count_dec: assertion 'old_value > 0' failed

(where-am-i:1214645): GLib-CRITICAL **: 17:34:52.810: g_atomic_ref_count_dec: assertion 'old_value > 0' failed
Client object: /org/freedesktop/GeoClue2/Client/1

New location:
Latitude:    51.513500°
Longitude:   -0.322900°
Accuracy:    25000 meters
Description: GeoIP (ichnaea)
Timestamp:   Wed 10 Jun 2026 17:34:53 BST (1781109293 seconds since the Epoch)

New location:
Latitude:    51.513500°
Longitude:   -0.322900°
Accuracy:    25000 meters
Description: ipf fallback (from WiFi data)
Timestamp:   Wed 10 Jun 2026 17:35:00 BST (1781109300 seconds since the Epoch)

Does anyone running OpenSUSE have the issue described above and a resolution for me?

Thanks

Narayan