diff --git a/man/org.freedesktop.locale1.xml b/man/org.freedesktop.locale1.xml
new file mode 100644
index 0000000000..7c345acc00
--- /dev/null
+++ b/man/org.freedesktop.locale1.xml
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+ org.freedesktop.locale1
+ systemd
+
+
+
+ org.freedesktop.locale1
+ 5
+
+
+
+ org.freedesktop.locale1
+ The D-Bus interface of systemd-localed
+
+
+
+ Introduction
+
+
+ systemd-localed.service8
+ is a system service that can be used to control the system locale and keyboard mapping from user
+ programs. This page describes the D-Bus interface.
+
+
+
+ The D-Bus API
+
+ The service exposes the following interfaces on the bus:
+
+
+$ gdbus introspect --system \
+ --dest org.freedesktop.locale1 \
+ --object-path /org/freedesktop/locale1
+
+node /org/freedesktop/locale1 {
+ interface org.freedesktop.locale1 {
+ methods:
+ SetLocale(in as locale,
+ in b user_interaction);
+ SetVConsoleKeyboard(in s keymap,
+ in s keymap_toggle,
+ in b convert,
+ in b user_interaction);
+ SetX11Keyboard(in s layout,
+ in s model,
+ in s variant,
+ in s options,
+ in b convert,
+ in b user_interaction);
+ signals:
+ properties:
+ readonly as Locale = ['LANG=en_US.UTF-8'];
+ readonly s VConsoleKeymap = 'de';
+ readonly s VConsoleKeymapToggle = '';
+ readonly s X11Layout = 'de';
+ readonly s X11Model = '';
+ readonly s X11Variant = '';
+ readonly s X11Options = '';
+ };
+ interface org.freedesktop.DBus.Properties {
+ };
+ interface org.freedesktop.DBus.Introspectable {
+ };
+ interface org.freedesktop.DBus.Peer {
+ };
+};
+
+
+ The system locale consists of an array of environment-variable-assignment-like strings. The
+ following strings are known: LANG=, LC_CTYPE=,
+ LC_NUMERIC=, LC_TIME=, LC_COLLATE=,
+ LC_MONETARY=, LC_MESSAGES=, LC_PAPER=,
+ LC_NAME=, LC_ADDRESS=, LC_TELEPHONE=,
+ LC_MEASUREMENT=, LC_IDENTIFICATION=.
+
+ Whenever the system locale or keymap is changed via the daemon PropertyChanged
+ signals are sent out to which clients can subscribe.
+
+
+ Methods
+
+ If you set a new system locale all old system locale settings will be dropped, and the new
+ settings will be saved to disk. It will also be passed to the system manager, and subsequently started
+ daemons will inherit the new system locale from it. Note that already running daemons will not learn
+ about the new system locale.
+
+ The SetVConsoleKeyboard() call may be used to set the key mapping on the
+ virtual console. Similarly, SetX11Keyboard() may be used to set the default key
+ mapping of the X11 servers.
+
+ Note that SetVConsoleKeyboard() instantly applies the new keymapping to the
+ console, while SetX11Keyboard() simply sets a default that may be used by later
+ sessions.
+
+ The boolean argument convert may be set to optionally convert the console
+ keyboard configuration to X11 keyboard mappings, resp. vice versa. If true and
+ SetVConsoleKeyboard() is used the nearest X11 keyboard setting for the chosen
+ console setting is set. If true and SetX11Keyboard() is used, the nearest console
+ keyboard setting for the chosen X11 setting is set. Usually it is hence sufficient to call one of the
+ two functions.
+
+ For graphical UIs that need to set the system keyboard mapping simply invoke
+ SetX11Keyboard(), set convert=true and ignore
+ SetVConsoleKeyboard().
+
+ Use the empty string for the keymap parameters you wish not to set.
+
+ Changing the system locale or keymap using this interface is authenticated via PolicyKit. The
+ PolicyKit action for SetLocale() is
+ org.freedesktop.locale1.set-locale. The PolicyKit action for
+ SetX11Keyboard() and SetVConsoleKeyboard() is
+ org.freedesktop.locale1.set-keyboard.
+
+ The user_interaction boolean parameters can be used to control whether
+ PolicyKit should interactively ask the user for authentication credentials if it needs to.
+
+
+
+
+ Versioning
+
+ These D-Bus interfaces follow
+ the usual interface versioning guidelines.
+
+
diff --git a/man/rules/meson.build b/man/rules/meson.build
index 34b775d91a..c881bae6cd 100644
--- a/man/rules/meson.build
+++ b/man/rules/meson.build
@@ -46,6 +46,7 @@ manpages = [
['nss-systemd', '8', ['libnss_systemd.so.2'], 'ENABLE_NSS_SYSTEMD'],
['org.freedesktop.hostname1', '5', [], 'ENABLE_HOSTNAMED'],
['org.freedesktop.import1', '5', [], 'ENABLE_IMPORTD'],
+ ['org.freedesktop.locale1', '5', [], 'ENABLE_LOCALED'],
['org.freedesktop.login1', '5', [], 'ENABLE_LOGIND'],
['org.freedesktop.machine1', '5', [], 'ENABLE_MACHINED'],
['org.freedesktop.timedate1', '5', [], 'ENABLE_TIMEDATED'],
diff --git a/man/systemd-localed.service.xml b/man/systemd-localed.service.xml
index f620aade11..cd4359dc46 100644
--- a/man/systemd-localed.service.xml
+++ b/man/systemd-localed.service.xml
@@ -29,7 +29,7 @@
Description
- systemd-localed is a system service
+ systemd-localed.service is a system service
that may be used as mechanism to change the system locale
settings, as well as the console key mapping and default X11 key
mapping. systemd-localed is automatically
@@ -40,10 +40,9 @@
localectl1
is a command line client to this service.
- See the
- developer documentation for information about the APIs
- systemd-localed provides.
+ See the
+ org.freedesktop.locale11
+ for a description of the D-Bus API.