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.