SETXKBMAP(1) General Commands Manual SETXKBMAP(1)
NAME
setxkbmap - set the keyboard using the X Keyboard Extension
SYNOPSIS
setxkbmap [ args ] [ layout [ variant [ option ... ] ] ]
DESCRIPTION
The setxkbmap command maps the keyboard to use the layout determined by
the options specified on the command line.
An XKB keymap is constructed from a number of components which are com-
piled only as needed. The source for all of the components can be found
in /usr/share/X11/xkb.
OPTIONS
-compat name
Specifies the name of the compatibility map component used to
construct a keyboard layout.
-config file
Specifies the name of an XKB configuration file which describes
the keyboard to be used.
-device device
Specifies the numeric device id of the input device to be up-
dated with the new keyboard layout. If not specified, the core
keyboard device of the X server is updated.
-display display
Specifies the display to be updated with the new keyboard lay-
out.
-geometry name
Specifies the name of the geometry component used to construct a
keyboard layout.
-help Prints a message describing the valid input to setxkbmap.
-I directory
Adds a directory to the list of directories to be used to search
for specified layout or rules files.
-keycodes name
Specifies the name of the keycodes component used to construct a
keyboard layout.
-keymap name
Specifies the name of the keymap description used to construct a
keyboard layout.
-layout name
Specifies the name of the layout used to determine the compo-
nents which make up the keyboard description. The -layout option
may only be used once. Multiple layouts can be specified as a
comma-separated list.
-model name
Specifies the name of the keyboard model used to determine the
components which make up the keyboard description. Only one
model may be specified on the command line.
-option name
Specifies the name of an option to determine the components
which make up the keyboard description; multiple options may be
specified, one per -option flag. Note that setxkbmap adds op-
tions specified in the command line to the options that were set
before (as saved in root window properties). If you want to re-
place all previously specified options, use the -option flag
with an empty argument first.
-print With this option setxkbmap just prints component names in a for-
mat acceptable by xkbcomp (an XKB keymap compiler) and exits.
The option can be used for tests instead of a verbose option and
in cases when one needs to run both the setxkbmap and the xkb-
comp in chain (see below).
-query With this option setxkbmap just prints the current rules, model,
layout, variant, and options, then exits.
-rules file
Specifies the name of the rules file used to resolve the re-
quested layout and model to a set of component names.
-symbols name
Specifies the name of the symbols component used to construct a
keyboard layout.
-synch Force synchronization for X requests.
-types name
Specifies the name of the types component used to construct a
keyboard layout.
-variant name
Specifies which variant of the keyboard layout should be used to
determine the components which make up the keyboard description.
The -variant option may only be used once. Multiple variants can
be specified as a comma-separated list and will be matched with
the layouts specified with -layout.
-verbose|-v [level]
Specifies level of verbosity in output messages. Valid levels
range from 0 (least verbose) to 10 (most verbose). The default
verbosity level is 5. If no level is specified, each -v or
-verbose flag raises the level by 1.
-version
Prints the program's version number.
USING WITH xkbcomp
If you have an Xserver and a client shell running on different computers
and some XKB configuration files on those machines are different, you
can get problems specifying a keyboard map by model, layout, and options
names. This is because setxkbmap converts its arguments to names of XKB
configuration files according to files that are on the client-side com-
puter, then sends these file names to the server where xkbcomp has to
compose a complete keyboard map using files which the server has. Thus
if the sets of files differ in some way, the names that setxkbmap gener-
ates can be unacceptable on the server side. You can solve this problem
by running the xkbcomp on the client side too. With the -print option
setxkbmap just prints the file names in an appropriate format to its
stdout and this output can be piped directly to the xkbcomp input. For
example, the command
setxkbmap us -print | xkbcomp - $DISPLAY
makes both steps run on the same (client) machine and loads a keyboard
map into the server.
XWAYLAND
Xwayland is an X server that uses a Wayland Compositor as backend.
Xwayland acts as translation layer between the X protocol and the Way-
land protocol but does not manage the keymaps - these are handled by the
Wayland Compositor.
Changing the keymap with setxkbmap is not supported by Xwayland. In
most instances, using setxkbmap on Xwayland is indicative of a bug in a
shell script and setxkbmap will print a warning. Use the Wayland Compos-
itor's native XKB configuration methods instead.
SEE ALSO
xkbcomp(1), xkeyboard-config(7)
FILES
/usr/share/X11/xkb
X Version 11 setxkbmap 1.3.4 SETXKBMAP(1)
Generated by dwww version 1.16 on Sat Oct 3 05:11:48 CEST 2026.