Is there a way from command line to retrieve the list of all available keyboard layouts and relative variants?

I need to list all the valid layout/variants choices to be used then from setxkbmap.

Also about the layout toggle options, is there a way to retrieve a list of all available choices (e.g. grp:shift_caps_toggle , ...)

I know that with

setxkbmap -query

I retrieve the list of my current ones, but I need the whole list of options.


I've been told about the command

man xkeyboard-config

which provides all the info to the command line.

Furthermore, using

man -P cat xkeyboard-config

the output goes to stdout and can be parsed with scripts or c code


7 Answers 7


Take a look at localectl, especially following options:

  • localectl list-x11-keymap-layouts - gives you layouts (~100 on modern systems)
  • localectl list-x11-keymap-variants de gives you variants for this layout (or all variants if no layout specified, ~300 on modern systems)
  • localectl list-x11-keymap-options | grep grp: - gives you all layout switching options
  • 1
    Well, looks like fr-oss variant is not supposed to work with fr layout. I'd say it's some sort of alternative thing and it would work with ml layout instead. localectl list-x11-keymap-variants ml says so. Commented Aug 24, 2016 at 19:52
  • These options can also be viewed in /etc/default/keyboard (at least on Linux Mint 18.1). Commented Mar 6, 2017 at 15:30
  • Looks like this is specific to systemd. (I get a message on MX Linux saying that the system was not booted with systemd as PID 1.)
    – crantok
    Commented Mar 9 at 11:02

Try looking in /usr/share/X11/xkb/symbols as described on the setxkbmap man page. The options can be found in various files, try doing a grep -rinH alts_toggle /usr/share/X11/xkb. /usr/share/X11/xkb/rules/xorg.xml looks like a good choice.

  • you were of great help, I understood how to get the layouts and the toggle options but still did not get how to retrieve the variants names to be inserted in setxkbmap.
    – giuspen
    Commented Jul 25, 2012 at 21:51
  • the variants are defined seperately for each layout. for example, you can use grep -E ^xkb_symbols < /usr/share/X11/xkb/symbols/dk to view the variants of the Danish layout. If you need reliable parsing, you probably need to look in the XKB sources. Commented Jul 25, 2012 at 21:59
  • I got it, reading the files in the folder /usr/share/X11/xkb/symbols and searching for the lines like xkb_symbols "de" where "de" is a variant of /usr/share/X11/xkb/symbols/ch
    – giuspen
    Commented Jul 25, 2012 at 21:59
  • 3
    I've been told about the useful command "man xkeyboard-config", pity that cannot parse the output from a script or c code since there's not an equivalent --help.
    – giuspen
    Commented Jul 27, 2012 at 11:16
  • I found out that "man -P cat xkeyboard-config" does the trick
    – giuspen
    Commented Jul 27, 2012 at 11:35

You could retrieve the list in that file /usr/share/X11/xkb/rules/evdev.lst

Example to retrieve variants with sed to find only Danish variant

sed '/! variant/,/^$/!d;/Danish/!d' < /usr/share/X11/xkb/rules/evdev.lst

  nodeadkeys      dk: Danish (eliminate dead keys)
  winkeys         dk: Danish (Winkeys)
  mac             dk: Danish (Macintosh)
  mac_nodeadkeys  dk: Danish (Macintosh, eliminate dead keys)
  dvorak          dk: Danish (Dvorak)

Edit: I add the full list

! layout
  us              USA
  ad              Andorra
  af              Afghanistan
  ara             Arabic
  al              Albania
  am              Armenia
  az              Azerbaijan
  by              Belarus
  be              Belgium
  bd              Bangladesh
  in              India
  ba              Bosnia and Herzegovina
  br              Brazil
  bg              Bulgaria
  ma              Morocco
  mm              Myanmar
  ca              Canada
  cd              Congo, Democratic Republic of the
  cn              China
  hr              Croatia
  cz              Czechia
  dk              Denmark
  nl              Netherlands
  bt              Bhutan
  ee              Estonia
  ir              Iran
  iq              Iraq
  fo              Faroe Islands
  fi              Finland
  fr              France
  gh              Ghana
  gn              Guinea
  ge              Georgia
  de              Germany
  gr              Greece
  hu              Hungary
  is              Iceland
  il              Israel
  it              Italy
  jp              Japan
  kg              Kyrgyzstan
  kh              Cambodia
  kz              Kazakhstan
  la              Laos
  latam           Latin American
  lt              Lithuania
  lv              Latvia
  mao             Maori
  me              Montenegro
  mk              Macedonia
  mt              Malta
  mn              Mongolia
  no              Norway
  pl              Poland
  pt              Portugal
  ro              Romania
  ru              Russia
  rs              Serbia
  si              Slovenia
  sk              Slovakia
  es              Spain
  se              Sweden
  ch              Switzerland
  sy              Syria
  tj              Tajikistan
  lk              Sri Lanka
  th              Thailand
  tr              Turkey
  tw              Taiwan
  ua              Ukraine
  gb              United Kingdom
  uz              Uzbekistan
  vn              Vietnam
  kr              Korea, Republic of
  nec_vndr/jp     Japan (PC-98xx Series)
  ie              Ireland
  pk              Pakistan
  mv              Maldives
  za              South Africa
  epo             Esperanto
  np              Nepal
  ng              Nigeria
  et              Ethiopia
  sn              Senegal
  brai            Braille
  tm              Turkmenistan
  ml              Mali
  tz              Tanzania

! variant
  chr             us: Cherokee
  euro            us: With EuroSign on 5
  intl            us: International (with dead keys)
  alt-intl        us: Alternative international (former us_intl)
  colemak         us: Colemak
  dvorak          us: Dvorak
  dvorak-intl     us: Dvorak international
  dvorak-l        us: Left handed Dvorak
  dvorak-r        us: Right handed Dvorak
  dvorak-classic  us: Classic Dvorak
  dvp             us: Programmer Dvorak
  rus             us: Russian phonetic
  mac             us: Macintosh
  altgr-intl      us: International (AltGr dead keys)
  olpc2           us: Group toggle on multiply/divide key
  srp             us: Serbian
  ps              af: Pashto
  uz              af: Southern Uzbek
  olpc-ps         af: OLPC Pashto
  olpc-fa         af: OLPC Dari
  olpc-uz         af: OLPC Southern Uzbek
  azerty          ara: azerty
  azerty_digits   ara: azerty/digits
  digits          ara: digits
  qwerty          ara: qwerty
  qwerty_digits   ara: qwerty/digits
  buckwalter      ara: Buckwalter
  phonetic        am: Phonetic
  phonetic-alt    am: Alternative Phonetic
  eastern         am: Eastern
  western         am: Western
  eastern-alt     am: Alternative Eastern
  cyrillic        az: Cyrillic
  legacy          by: Legacy
  latin           by: Latin
  oss             be: Alternative
  oss_latin9      be: Alternative, latin-9 only
  oss_sundeadkeys be: Alternative, Sun dead keys
  iso-alternate   be: ISO Alternate
  nodeadkeys      be: Eliminate dead keys
  sundeadkeys     be: Sun dead keys
  wang            be: Wang model 724 azerty
  probhat         bd: Probhat
  ben             in: Bengali
  ben_probhat     in: Bengali Probhat
  guj             in: Gujarati
  guru            in: Gurmukhi
  jhelum          in: Gurmukhi Jhelum
  kan             in: Kannada
  mal             in: Malayalam
  mal_lalitha     in: Malayalam Lalitha
  ori             in: Oriya
  tam_unicode     in: Tamil Unicode
  tam_keyboard_with_numerals in: Tamil Keyboard with Numerals
  tam_TAB         in: Tamil TAB Typewriter
  tam_TSCII       in: Tamil TSCII Typewriter
  tam             in: Tamil
  tel             in: Telugu
  urd-phonetic    in: Urdu, Phonetic
  urd-phonetic3   in: Urdu, Alternative phonetic
  urd-winkeys     in: Urdu, Winkeys
  bolnagri        in: Hindi Bolnagri
  hin-wx          in: Hindi Wx
  alternatequotes ba: Use guillemets for quotes
  unicode         ba: Use Bosnian digraphs
  unicodeus       ba: US keyboard with Bosnian digraphs
  us              ba: US keyboard with Bosnian letters
  nodeadkeys      br: Eliminate dead keys
  dvorak          br: Dvorak
  nativo          br: Nativo
  nativo-us       br: Nativo for USA keyboards
  nativo-epo      br: Nativo for Esperanto
  phonetic        bg: Traditional phonetic
  bas_phonetic    bg: New phonetic
  french          ma: French
  tifinagh        ma: Tifinagh
  tifinagh-alt    ma: Tifinagh Alternative
  tifinagh-alt-phonetic ma: Tifinagh Alternative Phonetic
  tifinagh-extended ma: Tifinagh Extended
  tifinagh-phonetic ma: Tifinagh Phonetic
  tifinagh-extended-phonetic ma: Tifinagh Extended Phonetic
  fr-dvorak       ca: French Dvorak
  fr-legacy       ca: French (legacy)
  multix          ca: Multilingual
  multi           ca: Multilingual, first part
  multi-2gr       ca: Multilingual, second part
  ike             ca: Inuktitut
  shs             ca: Secwepemctsin
  kut             ca: Ktunaxa
  eng             ca: English
  tib             cn: Tibetan
  tib_asciinum    cn: Tibetan (with ASCII numerals)
  alternatequotes hr: Use guillemets for quotes
  unicode         hr: Use Croatian digraphs
  unicodeus       hr: US keyboard with Croatian digraphs
  us              hr: US keyboard with Croatian letters
  bksl            cz: With &lt;\|&gt; key
  qwerty          cz: qwerty
  qwerty_bksl     cz: qwerty, extended Backslash
  ucw             cz: UCW layout (accented letters only)
  dvorak-ucw      cz: US Dvorak with CZ UCW support
  nodeadkeys      dk: Eliminate dead keys
  mac             dk: Macintosh
  mac_nodeadkeys  dk: Macintosh, eliminate dead keys
  dvorak          dk: Dvorak
  sundeadkeys     nl: Sun dead keys
  mac             nl: Macintosh
  std             nl: Standard
  nodeadkeys      ee: Eliminate dead keys
  dvorak          ee: Dvorak
  us              ee: US keyboard with Estonian letters
  pes_keypad      ir: Persian, with Persian Keypad
  ku              ir: Kurdish, Latin Q
  ku_f            ir: Kurdish, (F)
  ku_alt          ir: Kurdish, Latin Alt-Q
  ku_ara          ir: Kurdish, Arabic-Latin
  ku              iq: Kurdish, Latin Q
  ku_f            iq: Kurdish, (F)
  ku_alt          iq: Kurdish, Latin Alt-Q
  ku_ara          iq: Kurdish, Arabic-Latin
  nodeadkeys      fo: Eliminate dead keys
  nodeadkeys      fi: Eliminate dead keys
  smi             fi: Northern Saami
  classic         fi: Classic
  mac             fi: Macintosh
  nodeadkeys      fr: Eliminate dead keys
  sundeadkeys     fr: Sun dead keys
  oss             fr: Alternative
  oss_latin9      fr: Alternative, latin-9 only
  oss_nodeadkeys  fr: Alternative, eliminate dead keys
  oss_sundeadkeys fr: Alternative, Sun dead keys
  latin9          fr: (Legacy) Alternative
  latin9_nodeadkeys fr: (Legacy) Alternative, eliminate dead keys
  latin9_sundeadkeys fr: (Legacy) Alternative, Sun dead keys
  bepo            fr: Bepo, ergonomic, Dvorak way
  bepo_latin9     fr: Bepo, ergonomic, Dvorak way, latin-9 only
  dvorak          fr: Dvorak
  mac             fr: Macintosh
  bre             fr: Breton
  oci             fr: Occitan
  geo             fr: Georgian AZERTY Tskapo
  generic         gh: Multilingual
  akan            gh: Akan
  ewe             gh: Ewe
  fula            gh: Fula
  ga              gh: Ga
  hausa           gh: Hausa
  ergonomic       ge: Ergonomic
  mess            ge: MESS
  ru              ge: Russian
  os              ge: Ossetian
  deadacute       de: Dead acute
  deadgraveacute  de: Dead grave acute
  nodeadkeys      de: Eliminate dead keys
  ro              de: Romanian keyboard with German letters
  ro_nodeadkeys   de: Romanian keyboard with German letters, eliminate dead keys
  dvorak          de: Dvorak
  sundeadkeys     de: Sun dead keys
  neo             de: Neo 2
  mac             de: Macintosh
  mac_nodeadkeys  de: Macintosh, eliminate dead keys
  dsb             de: Lower Sorbian
  dsb_qwertz      de: Lower Sorbian (qwertz)
  qwerty          de: qwerty
  simple          gr: Simple
  extended        gr: Extended
  nodeadkeys      gr: Eliminate dead keys
  polytonic       gr: Polytonic
  standard        hu: Standard
  nodeadkeys      hu: Eliminate dead keys
  qwerty          hu: qwerty
  101_qwertz_comma_dead hu: 101/qwertz/comma/Dead keys
  101_qwertz_comma_nodead hu: 101/qwertz/comma/Eliminate dead keys
  101_qwertz_dot_dead hu: 101/qwertz/dot/Dead keys
  101_qwertz_dot_nodead hu: 101/qwertz/dot/Eliminate dead keys
  101_qwerty_comma_dead hu: 101/qwerty/comma/Dead keys
  101_qwerty_comma_nodead hu: 101/qwerty/comma/Eliminate dead keys
  101_qwerty_dot_dead hu: 101/qwerty/dot/Dead keys
  101_qwerty_dot_nodead hu: 101/qwerty/dot/Eliminate dead keys
  102_qwertz_comma_dead hu: 102/qwertz/comma/Dead keys
  102_qwertz_comma_nodead hu: 102/qwertz/comma/Eliminate dead keys
  102_qwertz_dot_dead hu: 102/qwertz/dot/Dead keys
  102_qwertz_dot_nodead hu: 102/qwertz/dot/Eliminate dead keys
  102_qwerty_comma_dead hu: 102/qwerty/comma/Dead keys
  102_qwerty_comma_nodead hu: 102/qwerty/comma/Eliminate dead keys
  102_qwerty_dot_dead hu: 102/qwerty/dot/Dead keys
  102_qwerty_dot_nodead hu: 102/qwerty/dot/Eliminate dead keys
  Sundeadkeys     is: Sun dead keys
  nodeadkeys      is: Eliminate dead keys
  mac             is: Macintosh
  dvorak          is: Dvorak
  lyx             il: lyx
  phonetic        il: Phonetic
  biblical        il: Biblical Hebrew (Tiro)
  nodeadkeys      it: Eliminate dead keys
  mac             it: Macintosh
  us              it: US keyboard with Italian letters
  geo             it: Georgian
  kana            jp: Kana
  OADG109A        jp: OADG 109A
  mac             jp: Macintosh
  phonetic        kg: Phonetic
  ruskaz          kz: Russian with Kazakh
  kazrus          kz: Kazakh with Russian
  basic           la: Laos
  stea            la: Laos - STEA (proposed standard layout)
  nodeadkeys      latam: Eliminate dead keys
  deadtilde       latam: Include dead tilde
  sundeadkeys     latam: Sun dead keys
  std             lt: Standard
  us              lt: US keyboard with Lithuanian letters
  ibm             lt: IBM (LST 1205-92)
  lekp            lt: LEKP
  lekpa           lt: LEKPa
  apostrophe      lv: Apostrophe (') variant
  tilde           lv: Tilde (~) variant
  fkey            lv: F-letter (F) variant
  cyrillic        me: Cyrillic
  cyrillicyz      me: Cyrillic, Z and ZHE swapped
  latinunicode    me: Latin unicode
  latinyz         me: Latin qwerty
  latinunicodeyz  me: Latin unicode qwerty
  cyrillicalternatequotes me: Cyrillic with guillemets
  latinalternatequotes me: Latin with guillemets
  nodeadkeys      mk: Eliminate dead keys
  us              mt: Maltese keyboard with US layout
  nodeadkeys      no: Eliminate dead keys
  dvorak          no: Dvorak
  smi             no: Northern Saami
  smi_nodeadkeys  no: Northern Saami, eliminate dead keys
  mac             no: Macintosh
  mac_nodeadkeys  no: Macintosh, eliminate dead keys
  qwertz          pl: qwertz
  dvorak          pl: Dvorak
  dvorak_quotes   pl: Dvorak, Polish quotes on quotemark key
  dvorak_altquotes pl: Dvorak, Polish quotes on key 1
  csb             pl: Kashubian
  ru_phonetic_dvorak pl: Russian phonetic Dvorak
  dvp             pl: Programmer Dvorak
  nodeadkeys      pt: Eliminate dead keys
  sundeadkeys     pt: Sun dead keys
  mac             pt: Macintosh
  mac_nodeadkeys  pt: Macintosh, eliminate dead keys
  mac_sundeadkeys pt: Macintosh, Sun dead keys
  nativo          pt: Nativo
  nativo-us       pt: Nativo for USA keyboards
  nativo-epo      pt: Nativo for Esperanto
  cedilla         ro: Cedilla
  std             ro: Standard
  std_cedilla     ro: Standard (Cedilla)
  winkeys         ro: Winkeys
  crh_f           ro: Crimean Tatar (Turkish F)
  crh_alt         ro: Crimean Tatar (Turkish Alt-Q)
  crh_dobruca1    ro: Crimean Tatar (Dobruca-1 Q)
  crh_dobruca2    ro: Crimean Tatar (Dobruca-2 Q)
  phonetic        ru: Phonetic
  phonetic_winkeys ru: Phonetic Winkeys
  typewriter      ru: Typewriter
  legacy          ru: Legacy
  typewriter-legacy ru: Typewriter, legacy
  tt              ru: Tatar
  os_legacy       ru: Ossetian, legacy
  os_winkeys      ru: Ossetian, Winkeys
  cv              ru: Chuvash
  cv_latin        ru: Chuvash Latin
  udm             ru: Udmurt
  kom             ru: Komi
  sah             ru: Yakut
  xal             ru: Kalmyk
  dos             ru: DOS
  srp             ru: Serbian
  bak             ru: Bashkirian
  yz              rs: Z and ZHE swapped
  latin           rs: Latin
  latinunicode    rs: Latin Unicode
  latinyz         rs: Latin qwerty
  latinunicodeyz  rs: Latin Unicode qwerty
  alternatequotes rs: With guillemets
  latinalternatequotes rs: Latin with guillemets
  alternatequotes si: Use guillemets for quotes
  us              si: US keyboard with Slovenian letters
  bksl            sk: Extended Backslash
  qwerty          sk: qwerty
  qwerty_bksl     sk: qwerty, extended Backslash
  nodeadkeys      es: Eliminate dead keys
  deadtilde       es: Include dead tilde
  sundeadkeys     es: Sun dead keys
  dvorak          es: Dvorak
  ast             es: Asturian variant with bottom-dot H and bottom-dot L
  cat             es: Catalan variant with middle-dot L
  mac             es: Macintosh
  nodeadkeys      se: Eliminate dead keys
  dvorak          se: Dvorak
  rus             se: Russian phonetic
  rus_nodeadkeys  se: Russian phonetic, eliminate dead keys
  smi             se: Northern Saami
  mac             se: Macintosh
  svdvorak        se: Svdvorak
  legacy          ch: Legacy
  de_nodeadkeys   ch: German, eliminate dead keys
  de_sundeadkeys  ch: German, Sun dead keys
  fr              ch: French
  fr_nodeadkeys   ch: French, eliminate dead keys
  fr_sundeadkeys  ch: French, Sun dead keys
  fr_mac          ch: French (Macintosh)
  de_mac          ch: German (Macintosh)
  syc             sy: Syriac
  syc_phonetic    sy: Syriac phonetic
  ku              sy: Kurdish, Latin Q
  ku_f            sy: Kurdish, (F)
  ku_alt          sy: Kurdish, Latin Alt-Q
  legacy          tj: Legacy
  tam_unicode     lk: Tamil Unicode
  tam_TAB         lk: Tamil TAB Typewriter
  tis             th: TIS-820.2538
  pat             th: Pattachote
  f               tr: (F)
  alt             tr: Alt-Q
  sundeadkeys     tr: Sun dead keys
  ku              tr: Kurdish, Latin Q
  ku_f            tr: Kurdish, (F)
  ku_alt          tr: Kurdish, Latin Alt-Q
  intl            tr: International (with dead keys)
  crh             tr: Crimean Tatar (Turkish Q)
  crh_f           tr: Crimean Tatar (Turkish F)
  crh_alt         tr: Crimean Tatar (Turkish Alt-Q)
  indigenous      tw: Indigenous
  saisiyat        tw: Saisiyat
  phonetic        ua: Phonetic
  typewriter      ua: Typewriter
  winkeys         ua: Winkeys
  legacy          ua: Legacy
  rstu            ua: Standard RSTU
  rstu_ru         ua: Standard RSTU on Russian layout
  homophonic      ua: Homophonic
  crh             ua: Crimean Tatar (Turkish Q)
  crh_f           ua: Crimean Tatar (Turkish F)
  crh_alt         ua: Crimean Tatar (Turkish Alt-Q)
  extd            gb: Extended - Winkeys
  intl            gb: International (with dead keys)
  dvorak          gb: Dvorak
  dvorakukp       gb: Dvorak (UK Punctuation)
  mac             gb: Macintosh
  colemak         gb: Colemak
  latin           uz: Latin
  crh             uz: Crimean Tatar (Turkish Q)
  crh_f           uz: Crimean Tatar (Turkish F)
  crh_alt         uz: Crimean Tatar (Turkish Alt-Q)
  kr104           kr: 101/104 key Compatible
  CloGaelach      ie: CloGaelach
  UnicodeExpert   ie: UnicodeExpert
  ogam            ie: Ogham
  ogam_is434      ie: Ogham IS434
  urd-crulp       pk: CRULP
  urd-nla         pk: NLA
  ara             pk: Arabic
  legacy          epo: displaced semicolon and quote (obsolete)
  igbo            ng: Igbo
  yoruba          ng: Yoruba
  hausa           ng: Hausa
  left_hand       brai: Left hand
  right_hand      brai: Right hand
  alt             tm: Alt-Q
  fr-oss          ml: Français (France Alternative)
  us-mac          ml: English (USA Macintosh)
  us-intl         ml: English (USA International)
  • 1
    Thanks! This answer is much more useful, since not everyone is using systemd.
    – comfreak
    Commented Nov 8, 2017 at 9:35

Options with descriptions

An alternative to localectl list-* is to to search the file /usr/share/X11/xkb/base.lst, which contains the same lists, but with descriptions as well.

Example aliases:

alias lsxkbmodels="sed '/^! model$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst"
alias lsxkblayouts="sed '/^! layout$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst"
alias lsxkbvariants="sed '/^! variant$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst"
alias lsxkboptions="sed '/^! option$/,/^ *$/!d;//d' /usr/share/X11/xkb/rules/base.lst"

alias viewxkb="less -M '+/^\s*\!\s\w+$' /usr/share/X11/xkb/rules/base.lst"
alias viewxkbmodels="lsxkbmodels | less -M"
alias viewxkblayouts="lsxkblayouts | less -M"
alias viewxkbvariants="lsxkbvariants | less -M"
alias viewxkboptions="lsxkboptions | less -M"

The viewxkb* aliases are analagous to the localectl list-* commands, but include descriptions. The viewxkb alias views the entire file (combining the four sections) in the pager, with a predefined search term to allow you jump between sections with n and N.

Extract of output from lsxkboptions:

compat               Miscellaneous compatibility options
numpad:pc            Default numeric keypad keys
numpad:mac           Numeric keypad keys always enter digits (as in Mac OS)
numpad:microsoft     NumLock on: digits, Shift switches to arrow keys, Numlock off: always arrow keys (as in MS Windows)
numpad:shift3        Shift does not cancel Num Lock, chooses 3rd level instead
srvrkeys:none        Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server
apple:alupckeys      Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)
shift:breaks_caps    Shift cancels Caps Lock
misc:typo            Enable extra typographic characters
shift:both_capslock  Both Shift keys together toggle Caps Lock
shift:both_capslock_cancel Both Shift keys together activate Caps Lock, one Shift key deactivates
shift:both_shiftlock Both Shift keys together toggle ShiftLock
keypad:pointerkeys   Shift + NumLock toggles PointerKeys

The options are listed in man xkeyboard-config.

(copying from OP's edit)


To list all layouts with descriptions:

% ./xkb-list-layouts-variants.sh
af | Dari
al | Albanian
am | Armenian

To list all variants including "exotic" ones:

% ./xkb-list-layouts-variants.sh LAYOUT_CODE
ab  | Abkhazian (Russia)
bak | Bashkirian

While commands localectl list-x11-keymap-* from systemd project work for most basic tasks, they lack important features such as printing descriptions of the raw codes and including extra XKB variants, officially called "exotic".

I could not find any standard command to do this, so I created my own script called xkb-list-layouts-variants.sh based on xkbcli utility from libxkbcommon.

The script can be downloaded using this command:

wget "https://gist.github.com/rindeal/1891455c258b22f3e31e1da8f9821c28/raw/97cf16d6f091ff0632d7a9ffe327069f3ef84eae/xkb-list-layouts-variants.sh"

There is a related question on askubuntu that links to a list of all these keyboard layouts.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .