# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
---
# These settings are used to set your default system time zone.
# Time zones are usually located under /usr/share/zoneinfo and
# provided by the 'tzdata' package of your Distribution.
#
# Distributions using systemd can list available
# time zones by using the timedatectl command.
#    timedatectl list-timezones
#
# The starting timezone (e.g. the pin-on-the-map) when entering
# the locale page can be set through keys *region* and *zone*.
# If either is not set, defaults to America/New_York.
#
# Note that useSystemTimezone and GeoIP settings can change the
# starting time zone.
#
region:                     "Europe"
zone:                       "Berlin"

# Instead of using *region* and *zone* specified above,
# you can use the system's notion of the timezone, instead.
# This can help if your system is automatically configured with
# a sensible TZ rather than chasing a fixed default.
#
# The default is false.
#
# useSystemTimezone: true

# Should changing the system location (e.g. clicking around on the timezone
# map) immediately reflect the changed timezone in the live system?
# By default, installers (with a target system) do, and setup (e.g. OEM
# configuration) does not, but you can switch it on here (or off, if
# you think it's annoying in the installer).
#
# Note that not all systems support live adjustment.
#
# adjustLiveTimezone:   true

# System locales are detected in the following order:
#
#  - /usr/share/i18n/SUPPORTED
#  - localeGenPath (defaults to /etc/locale.gen if not set)
#  - `locale -a` output
#
# Enable only when your Distribution is using a
# custom path for locale.gen
#
localeGenPath:             "/home/user/locale.gen"

# GeoIP based Language settings: Leave commented out to disable GeoIP.
#
# GeoIP needs a working Internet connection.
# This can be managed from `welcome.conf` by adding
# internet to the list of required conditions. (The welcome
# module can also do its own GeoIP lookups, independently
# of the lookup done here. The lookup in the welcome module
# is used to establish language; this one is for timezone).
#
# The configuration is in three parts:
# - a *style*, which can be "json" or "xml" depending on the
#   kind of data returned by the service, and
# - a *url* where the data is retrieved, and
# - an optional *selector*
#   to pick the right field out of the returned data (e.g. field
#   name in JSON or element name in XML).
#
# The default selector (when the setting is blank) is picked to
# work with existing JSON providers (which use "time_zone") and
# Ubiquity's XML providers (which use "TimeZone").
#
# If the service configured via *url* uses
# a different attribute name (e.g. "timezone") in JSON or a
# different element tag (e.g. "<Time_Zone>") in XML, set the
# selector to the name or tag to be used.
#
# In JSON:
#  - if the string contains "." characters, this is used as a
#    multi-level selector, e.g. "a.b" will select the timezone
#    from data "{a: {b: "Europe/Amsterdam" } }".
#  - each part of the string split by "." characters is used as
#    a key into the JSON data.
# In XML:
#  - all elements with the named tag (e.g. all TimeZone) elements
#    from the document are checked; the first one with non-empty
#    text value is used.
# Special case:
#  - the *style* "fixed" is also supported. This ignores the data
#    returned from the URL (but the URL must still be valid!)
#    and just returns the value of the *selector*.
#
# An HTTP(S) request is made to *url*. The request should return
# valid data in a suitable format, depending on *style*;
# generally this includes a string value with the timezone
# in <region>/<zone> format. For services that return data which
# does not follow the conventions of "suitable data" described
# below, *selector* may be used to pick different data.
#
# Suitable JSON data looks like
# ```
#    {"time_zone":"America/New_York"}
# ```
# Suitable XML data looks like
# ```
#    <Response><TimeZone>Europe/Brussels</TimeZone></Response>
# ```
#
# To accommodate providers of GeoIP timezone data with peculiar timezone
# naming conventions, the following cleanups are performed automatically:
#  - backslashes are removed
#  - spaces are replaced with _
#
# To disable GeoIP checking, either comment-out the entire geoip section,
# or set the *style* key to an unsupported format (e.g. `none`).
# Also, note the analogous feature in src/modules/welcome/welcome.conf.
#
geoip:
    style:    "json"
    url:      "https://geoip.kde.org/v1/calamares"
    selector: ""  # leave blank for the default

# For testing purposes, you could use *fixed* style, to see how Calamares
# behaves in a particular zone:
#
# geoip:
#     style:    "fixed"
#     url:      "https://geoip.kde.org/v1/calamares"  # Still needs to be valid!
#     selector: "America/Vancouver"  # this is the selected zone
#
