[locale] New setting *adjustLiveTimezone*
- allow finer-grained control over whether-or-not to adjust the timezone in the live system. - handle some special cases at the point of loading-configuration. - document the setting in locale.conf - correct some documentation bugs - adjust the YAML schema for locale.conf so it's legal YAML syntax **and** validates the current file.
This commit is contained in:
parent
995ebd5c83
commit
f6419d5de1
@ -177,15 +177,11 @@ Config::Config( QObject* parent )
|
|||||||
gs->insert( "locationRegion", location->region() );
|
gs->insert( "locationRegion", location->region() );
|
||||||
gs->insert( "locationZone", location->zone() );
|
gs->insert( "locationZone", location->zone() );
|
||||||
|
|
||||||
// If we're in chroot mode (normal install mode), then we immediately set the
|
if ( locationChanged && m_adjustLiveTimezone )
|
||||||
// timezone on the live system. When debugging timezones, don't bother.
|
|
||||||
#ifndef DEBUG_TIMEZONES
|
|
||||||
if ( locationChanged && Calamares::Settings::instance()->doChroot() )
|
|
||||||
{
|
{
|
||||||
QProcess::execute( "timedatectl", // depends on systemd
|
QProcess::execute( "timedatectl", // depends on systemd
|
||||||
{ "set-timezone", location->region() + '/' + location->zone() } );
|
{ "set-timezone", location->region() + '/' + location->zone() } );
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,6 +321,23 @@ Config::setConfigurationMap( const QVariantMap& configurationMap )
|
|||||||
localeGenPath = QStringLiteral( "/etc/locale.gen" );
|
localeGenPath = QStringLiteral( "/etc/locale.gen" );
|
||||||
}
|
}
|
||||||
m_localeGenLines = loadLocales( localeGenPath );
|
m_localeGenLines = loadLocales( localeGenPath );
|
||||||
|
|
||||||
|
m_adjustLiveTimezone
|
||||||
|
= CalamaresUtils::getBool( configurationMap, "adjustLiveTimezone", Calamares::Settings::instance()->doChroot() );
|
||||||
|
#ifdef DEBUG_TIMEZONES
|
||||||
|
if ( m_adjustLiveTimezone )
|
||||||
|
{
|
||||||
|
cDebug() << "Turning off live-timezone adjustments because debugging is on.";
|
||||||
|
m_adjustLiveTimezone = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef __FreeBSD__
|
||||||
|
if ( m_adjustLiveTimezone )
|
||||||
|
{
|
||||||
|
cDebug() << "Turning off live-timezone adjustments on FreeBSD.";
|
||||||
|
m_adjustLiveTimezone = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Calamares::JobList
|
Calamares::JobList
|
||||||
|
@ -126,6 +126,13 @@ private:
|
|||||||
* pick Ukranian settings, for instance).
|
* pick Ukranian settings, for instance).
|
||||||
*/
|
*/
|
||||||
LocaleConfiguration m_selectedLocaleConfiguration;
|
LocaleConfiguration m_selectedLocaleConfiguration;
|
||||||
|
|
||||||
|
/** @brief Should we adjust the "live" timezone when the location changes?
|
||||||
|
*
|
||||||
|
* In the Widgets UI, clicking around on the world map adjusts the
|
||||||
|
* timezone, and the live system can be made to follow that.
|
||||||
|
*/
|
||||||
|
bool m_adjustLiveTimezone;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
# This settings are used to set your default system time zone.
|
# These settings are used to set your default system time zone.
|
||||||
# Time zones are usually located under /usr/share/zoneinfo and
|
# Time zones are usually located under /usr/share/zoneinfo and
|
||||||
# provided by the 'tzdata' package of your Distribution.
|
# provided by the 'tzdata' package of your Distribution.
|
||||||
#
|
#
|
||||||
@ -14,17 +14,26 @@
|
|||||||
region: "America"
|
region: "America"
|
||||||
zone: "New_York"
|
zone: "New_York"
|
||||||
|
|
||||||
|
# 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:
|
# System locales are detected in the following order:
|
||||||
#
|
#
|
||||||
# - /usr/share/i18n/SUPPORTED
|
# - /usr/share/i18n/SUPPORTED
|
||||||
# - localeGenPath (defaults to /etc/locale.gen if not set)
|
# - localeGenPath (defaults to /etc/locale.gen if not set)
|
||||||
# - 'locale -a' output
|
# - `locale -a` output
|
||||||
#
|
#
|
||||||
# Enable only when your Distribution is using an
|
# Enable only when your Distribution is using a
|
||||||
# custom path for locale.gen
|
# custom path for locale.gen
|
||||||
#
|
#
|
||||||
#localeGenPath: "PATH_TO/locale.gen"
|
#localeGenPath: "/etc/locale.gen"
|
||||||
|
|
||||||
# GeoIP based Language settings: Leave commented out to disable GeoIP.
|
# GeoIP based Language settings: Leave commented out to disable GeoIP.
|
||||||
#
|
#
|
||||||
|
@ -4,7 +4,34 @@ $id: https://calamares.io/schemas/locale
|
|||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
"region": { type: str }
|
region: { type: string,
|
||||||
"zone": { type: str }
|
enum: [
|
||||||
"localeGenPath": { type: string, required: true }
|
Africa,
|
||||||
"geoipUrl": { type: str }
|
America,
|
||||||
|
Antarctica,
|
||||||
|
Arctic,
|
||||||
|
Asia,
|
||||||
|
Atlantic,
|
||||||
|
Australia,
|
||||||
|
Europe,
|
||||||
|
Indian,
|
||||||
|
Pacific
|
||||||
|
]
|
||||||
|
}
|
||||||
|
zone: { type: string }
|
||||||
|
|
||||||
|
adjustLiveTimezone: { type: boolean, default: true }
|
||||||
|
|
||||||
|
localeGenPath: { type: string }
|
||||||
|
|
||||||
|
# TODO: refactor, this is reused in welcome
|
||||||
|
geoip:
|
||||||
|
additionalProperties: false
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
style: { type: string, enum: [ none, fixed, xml, json ] }
|
||||||
|
url: { type: string }
|
||||||
|
selector: { type: string }
|
||||||
|
required: [ style, url, selector ]
|
||||||
|
|
||||||
|
required: [ region, zone ]
|
||||||
|
Loading…
Reference in New Issue
Block a user