列出所有有效的kbd布局,变体和切换选项(与setxkbmap一起使用)


48

从命令行有没有办法检索所有可用的键盘布局和相对变体的列表?

我需要从setxkbmap中列出所有要使用的有效布局/变量选择。

关于布局切换选项,还有一种方法可以检索所有可用选项的列表(例如grp:shift_caps_toggle,...)

我知道

setxkbmap -query

我检索了当前列表,但是我需要整个选项列表。

更新:

有人告诉我有关命令的信息

man xkeyboard-config

它将所有信息提供给命令行。

此外,使用

man -P cat xkeyboard-config

输出到stdout,可以用脚本或C代码解析

Answers:


14

尝试按照setxkbmap手册页中的说明查找/ usr / share / X11 / xkb / symbols。这些选项可以在各种文件中找到,请尝试执行grep -rinH alts_toggle /usr/share/X11/xkb/usr/share/X11/xkb/rules/xorg.xml看起来是个不错的选择。


您提供了很大的帮助,我了解了如何获取布局和切换选项,但仍然没有获取如何检索要插入setxkbmap中的变量名称。
giuspen 2012年

对于每种布局,分别定义了变体。例如,您可以使用grep -E ^xkb_symbols < /usr/share/X11/xkb/symbols/dk来查看丹麦布局的变体。如果需要可靠的解析,则可能需要查看XKB源代码。
Janus Troelsen

我明白了,读取了/ usr / share / X11 / xkb / symbols文件夹中的文件,并搜索xkb_symbols“ de”之类的行,其中“ de”是/ usr / share / X11 / xkb / symbols / ch的变体
giuspen 2012年

3
有人告诉我有用的命令“ man xkeyboard-config”,可惜无法解析脚本或c代码的输出,因为没有等效的--help。
giuspen 2012年

我发现“ man -P cat xkeyboard-config”可以解决问题
giuspen

34

看一下localectl,尤其是以下选项:

  • localectl list-x11-keymap-layouts -给你布局
  • localectl list-x11-keymap-variants de 为您提供此布局的变体(如果未指定布局,则为所有变体)
  • localectl list-x11-keymap-options | grep grp: -提供所有布局切换选项

1
好吧,看起来fr-oss变体不应该与fr布局一起使用。我会说这是另一种选择,它可以与ml布局一起使用。localectl list-x11-keymap-variants ml这样说。
Daerdemandt

我的评论无处可去,因此我删除了它们。
保罗

我也是,只留下一个可重复使用的信息
Daerdemandt

这些选项也可以在中查看/etc/default/keyboard(至少在Linux Mint 18.1上)。
stiemannkj1

6

您可以在该文件/usr/share/X11/xkb/rules/evdev.lst中检索列表。

用于检索sed仅查找丹麦语变体的示例

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)

编辑:我添加了完整列表

! 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)

谢谢!这个答案非常有用,因为不是每个人都在使用systemd。
comfreak

5

带有说明的选项

一种替代方法localectl list-*是搜索文件/usr/share/X11/xkb/base.lst,该文件包含相同的列表,但也具有描述。

别名示例:

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"

viewxkb*别名analagous到localectl list-*命令,但包括描述。该viewxkb别名把整个文件(组合四个部分)中的寻呼机,与预定义的搜索词,让你节之间跳跃与nN

摘录自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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.