geoclue - Man Page

geoclue configuration parameters

Synopsis

Main configuration file: /etc/geoclue/geoclue.conf
Overwriting parameters files: /etc/geoclue/conf.d

Description

The main GeoClue configuration file 'geoclue.conf' specifies parameters that control the operation of geoclue. Parameters can be overwritten by placing configuration files in conf.d directory and applied in alphabetic order. Thus, a configuration file '90-config.conf' will overwrite parameters specified in another configuration file '50-config.conf' in the conf.d directory.

All configurations settings below are mandatory and the defaults are what you see before you edit them in geoclue.conf. If you want to keep the default values around, copy and comment out the appropriate line(s) before changing them.

Missing 'enable' key for a particular source in the main configuration file causes that source to be enabled by default. Adding 'enable' key setting to any further config file can overwrite this default.

Agent Configuration Options

[agent] is used to begin the agent configuration.

whitelist

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

Location Source Configuration Options

[ip]

IP source configuration options

enable=true
Enable the GeoIP source

method=ichnaea
Method (backend) to use for IP location. Currently implemented are:
"ichnaea": Use the Ichnaea API with the URL from the wifi source.
"gmaps": Use the location determined by Google Maps. "reallyfreegeoip": Use the location from reallyfreegeoip.org.

[network-nmea]

Network NMEA source configuration options

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

nmea-socket=/var/run/gps-share.sock
Use a nmea unix socket as the data source. If not set, unix socket will not be used.

[3g]

3G source configuration options

enable=true
Enable 3G source. The 3G source uses the wireless geolocation service URL defined in the "wifi" section.

[cdma]

CDMA source configuration options

enable=true
Enable CDMA source

[modem-gps]

Modem GPS source configuration options

enable=true
Enable Modem-GPS source

[wifi]

WiFi source configuration options

enable=true
Enable WiFi source

url=https://example.com/v1/geolocate?key=YOUR_KEY
URL to wireless geolocation service compatible with the Ichnaea API (https://ichnaea.readthedocs.io/en/latest/api/geolocate.html). If not set, defaults to an URL set in the build configuration. If an URL is not set here or in the build configuration, the wifi and 3g sources will be disabled. An API key can be set with the "key" URL parameter.

submit-data=false
Submit data to a wireless geolocation service.
If set to true, geoclue will automatically submit network data to a wireless geolocation service each time it gets a GPS lock. Currently, only Modem-GPS or Network NMEA sources are supported as providers of a location to submit (one at a time). If Modem-GPS source is enabled above it will be the exclusive provider (regardless whether the system is actually equipped with such modem), otherwise Network NMEA source will be considered.

submission-url=https://example.com/v2/geosubmit?key=YOUR_KEY
URL to submit data to a wireless geolocation service with an Ichnaea compatible API (https://ichnaea.readthedocs.io/en/latest/api/geosubmit2.html).

submission-nick=geoclue
A nickname to submit network data with. Sets an "X-Nickname" HTTP header to the submit request. If set to an empty string, omitted from the submission. Otherwise, must be 2 to 32 characters long. Defaults to "geoclue".

[compass]

Compass configuration options

enable=true
Enable Compass

[static-source]

Static source configuration options.
This source reads location from "geolocation" file in /etc. See "Static Location File" below for the format of this file. While this file is constantly monitored for changes during geoclue operation, and the reported static location is updated accordingly, this source isn't meant for inputting a dynamically changing location to geoclue (please use the Network NMEA source for that).

enable=true
Enable the static source.
If you make use of this source, you probably should disable other location sources in geoclue.conf so they won't override the configured static location.

Application Configuration Options

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:

[random-app]
Desktop ID of application without .desktop part

allowed=true|false
Allowed access to location information?

system=true|false
Is application a system component?

users=
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.

Examples:

[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=

[epiphany]
allowed=true
system=false
users=

[firefox]
allowed=true
system=false
users=

Static Location File

Basic format

The static location file in /etc (used by the static source) is a text file consisting of the following:

  1. Latitude (floating point number; positive values mean north, negative south)
  2. Longitude (floating point number; positive values mean east, negative west)
  3. Altitude (floating point number; in meters)
  4. Accuracy radius (floating point number; in meters)

These values need to be separated by newline characters.

Additional format information

  • The '#' character starts a comment, which continues until the end of the current line.
  • Leading and trailing white-space on each line is ignored.
  • Empty lines (or containing just white-space or a comment) are ignored.

Example

# Example static location file for a machine inside Statue of Liberty torch

40.6893129   # latitude
-74.0445531  # longitude
96           # altitude
1.83         # accuracy radius (the diameter of the torch is 12 feet)

Notes

For extra security, the static location file can be made readable just by the geoclue user:

# chown geoclue /etc/geolocation
# chmod 600 /etc/geolocation

Client List

Sending SIGUSR1 to a running geoclue process prints the current list of clients to the log.

Author

Sachin Chand