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 updated 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 layout.

-geometry name

Specifies
the name of the geometry component used to construct a keyboard layout.

-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
components which make up the keyboard description. Only one layout may
be specified on the command line.

-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 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 argument first.

-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.

-rules file

Specifies the
name of the rules file used to resolve the requested 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. Only one variant may be specified on the command
line.

-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.

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 xkbcomp 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.