The system locale specifies the language settings of system services and user interfaces. The keyboard layout settings control the layout used on the text console and graphical user interfaces.
These settings can be made by modifying the
file or by using the localectl utility. Also, you can use the
graphical user interface to perform the task; for a description of this
method, see Fedora
System-wide locale settings are stored in the
/etc/locale.conf file, which
is read at early boot by the
systemd daemon. The locale settings
/etc/locale.conf are inherited by every service or user,
unless individual programs or individual users override them.
The basic file format of
/etc/locale.conf is a newline-separated list of
variable assignments. For example, German locale with English messages in
/etc/locale.conf looks as follows:
Here, the LC_MESSAGES option determines the locale used for diagnostic
messages written to the standard error output. To further specify locale
/etc/locale.conf, you can use several other options, the most
relevant are summarized in
System_Locale_and_Keyboard_Configuration.adoc#tab-locale_options. See the
locale(7) manual page for
detailed information on these options. Note that the LC_ALL option, which
represents all possible options, should not be configured in
Provides a default value for the system locale.
Changes the behavior of functions which compare strings in the local alphabet.
Changes the behavior of the character handling and classification functions and the multibyte character functions.
Describes the way numbers are usually printed, with details such as decimal point versus decimal comma.
Changes the display of the current time, 24-hour versus 12-hour clock.
Determines the locale used for diagnostic messages written to the standard error output.
The localectl command can be used to query and change the system
locale and keyboard layout settings. To show the current settings, use the
The output of the previous command lists the currently set locale, keyboard layout configured for the console and for the X11 window system.
~]$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a
To list all locales available for your system, type:
Imagine you want to select a specific English locale, but you are not sure if it is available on the system. You can check that by listing all English locales with the following command:
~]$ localectl list-locales | grep
en_en_AG en_AG.utf8 en_AU en_AU.iso88591 en_AU.utf8 en_BW en_BW.iso88591 en_BW.utf8 output truncated
To set the default system locale, use the following command as
Replace locale with the locale name, found with the localectl
list-locales command. The above syntax can also be used to
configure parameters from
For example, if you want to set British English as your default locale,
first find the name of this locale by using
list-locales. Then, as
root, type the command in the following form:
~]# localectl set-locale LANG=
The keyboard layout settings enable the user to control the layout used on the text console and graphical user interfaces.
As mentioned before, you can check your current keyboard layout configuration with the following command:
In the following output, you can see the keyboard layout configured for the virtual console and for the X11 window system.
~]$ localectl status System Locale: LANG=en_US.utf8 VC Keymap: us X11 Layout: us
To list all available keyboard layouts that can be configured on your system, type:
You can use grep to search the output of the previous command for a specific keymap name. There are often multiple keymaps compatible with your currently set locale. For example, to find available Czech keyboard layouts, type:
czcz cz-cp1250 cz-lat2 cz-lat2-prog cz-qwerty cz-us-qwertz sunt5-cz-us sunt5-us-cz
To set the default keyboard layout for your system, use the following
Replace map with the name of the keymap taken from the output of the
list-keymaps command. Unless the
--no-convert option is passed, the selected setting is also
applied to the default keyboard mapping of the X11 window system, after
converting it to the closest matching X11 keyboard mapping. This also
applies in reverse, you can specify both keymaps with the following command
If you want your X11 layout to differ from the console layout, use the
With this option, the X11 keymap is specified without changing the previous console layout setting.
Imagine you want to use German keyboard layout in the graphical interface,
but for console operations you want to retain the US keymap. To do so, type
~]# localectl --no-convert set-x11-keymap de
Then you can verify if your setting was successful by checking the current status:
~]$ localectl status System Locale: LANG=de_DE.UTF-8 VC Keymap: us X11 Layout: de
Apart from keyboard layout (map), three other options can be specified:
set-x11-keymapmap model variant options
Replace model with the keyboard model name, variant and options with
keyboard variant and option components, which can be used to enhance the
keyboard behavior. These options are not set by default. For more
information on X11 Model, X11 Variant, and X11 Options see the
For more information on how to configure the keyboard layout on Fedora, see the resources listed below:
localectl(1) — The manual page for the localectl command line utility documents how to use this tool to configure the system locale and keyboard layout.
loadkeys(1) — The manual page for the loadkeys command provides more information on how to use this tool to change the keyboard layout in a virtual console.