SETXKBMAP(1) General Commands Manual SETXKBMAP(1)
setxkbmap - set the keyboard using the X Keyboard Extension
setxkbmap [ args ] [ layout [ variant [ option ... ] ] ]
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 compiled only as needed. The source for all of the components can be
found in /usr/share/X11/xkb.
-help Prints a message describing the valid input to setxkbmap.
Specifies the name of the compatibility map component used to construct a keyboard layout.
Specifies the name of an XKB configuration file which describes the keyboard to be used.
Specifies the numeric device id of the input device to be updated with the new keyboard layout. If not specified, the core keyboard
device of the X server is updated.
Specifies the display to be updated with the new keyboard layout.
Specifies the name of the geometry component used to construct a keyboard layout.
Adds a directory to the list of directories to be used to search for specified layout or rules files.
Specifies the name of the keycodes component used to construct a keyboard layout.
Specifies the name of the keymap description used to construct a keyboard layout.
Specifies the name of the layout used to determine the components which make up the keyboard description. The -layout option may
only be used once. Multiple layouts can be specified as a comma-separated list.
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.
Specifies the name of an option to determine the components which make up the keyboard description; multiple options may be speci-
fied, one per -option flag. Note that setxkbmap adds options specified in the command line to the options that were set before (as
saved in root window properties). If you want to replace all previously specified options, use the -option flag with an empty argu-
-print With this option setxkbmap just prints component names in a format 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 xkbcomp in
chain (see below).
-query With this option setxkbmap just prints the current rules, model, layout, variant, and options, then exits.
Specifies the name of the rules file used to resolve the requested layout and model to a set of component names.
Specifies the name of the symbols component used to construct a keyboard layout.
-synch Force synchronization for X requests.
Specifies the name of the types component used to construct a keyboard layout.
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.
Specifies level of verbosity in output messages. Valid levels range from 0 (least verbose) to 10 (most verbose). The default ver-
bosity level is 5. If no level is specified, each -v or -verbose flag raises the level by 1.
USING WITH xkbcomp
If you have an Xserver and a client shell running on different computers and XKB configuration files on those machines are different you
can get problems specifying a keyboard map by model, layout, options names. This is because setxkbcomp converts these names to names of
XKB configuration files according to files that are on the client side computer, then it sends the file names to the server where the xkb-
comp has to compose a complete keyboard map using files which the server has. Thus if the sets of files differ significantly the names
that the setxkbmap generates 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.
X Version 11 setxkbmap 1.3.0 SETXKBMAP(1)