man > setxkbmap(1)

⚡ TLDR: setxkbmap (tldr-pages)

Set the keyboard using the X Keyboard Extension.

  • Set the keyboard in French AZERTY
    setxkbmap {{fr}}
  • Set multiple keyboard layouts, their variants and switching option
    setxkbmap -layout {{us,de}} -variant {{,qwerty}} -option '{{grp:alt_caps_toggle}}'
  • List all layouts
    localectl list-x11-keymap-layouts
  • List variants for the layout
    localectl list-x11-keymap-variants {{de}}
  • List available switching options
    localectl list-x11-keymap-options | grep grp:
  • Display help
    setxkbmap -help
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 compiled 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 updated with the  new  key‐
               board 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.

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

       -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  key‐
               board  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 previ‐
               ously 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 xkb‐
               comp (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 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 compo‐
               nents  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 config‐
       uration 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  computer,
       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  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 di‐
       rectly 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 transla‐
       tion layer between the X protocol and the Wayland 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 Compositor'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)
setxkbmap(1) □✕
NAME SYNOPSIS DESCRIPTION OPTIONS
-compat name -config file -device device -display display -geometry name -help Prints a message describing the valid input to setxkbmap. -I directory -keycodes name -keymap name -layout name -model name -option name -print With this option setxkbmap just prints component names in a format acceptable by xkb‐ -query With this option setxkbmap just prints the current rules, model, layout, variant, and -rules file -symbols name -synch Force synchronization for X requests. -types name -variant name -verbose|-v [level] -version setxkbmap us -print | xkbcomp - $DISPLAY
XWAYLAND SEE ALSO FILES

Generated by phpman v4.12.7 · Markdown · JSON Author: Che Dong Under GNU General Public License
2026-10-19 08:07 @216.73.216.182
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^