Como eu altero o layout de teclado atualmente selecionado da linha de comando?

12

Eu tenho meus layouts de teclado (dois deles) e alternando entre eles configurados através do seguinte comando:

setxkbmap -layout us,ru -option -option "grp:lctrl_lshift_toggle,ctrl:nocaps"

Agora quero mudar para us layout, usando algum comando da linha de comando. Isso é possível?

    
por Rogach 11.06.2013 / 08:09

4 respostas

12

Você pode usar xkb-switch ( -n muda para o próximo layout):

xkb-switch -n

ou xkblayout-state (com set +1 para agrupar, no seu caso):

xkblayout-state set +1

ou xte de xautomation para simular Control_L + Shift_L pressione / libere a tecla:

xte 'keydown Control_L' 'keydown Shift_L' 'keyup Shift_L' 'keyup Control_L'
    
por 11.06.2013 / 17:40
2

As pesquisas do Stack Exchange para kbdmap encontram esta página com nenhuma menção a essa palavra. Para maior clareza, aqui está uma resposta (não exatamente compatível com a tag X11 da pergunta, mas deve ajudar alguém)…

Quando limitado a um console virtual

- sem X.

kbdmap (1)

kbdmap, vidfont -- front end for syscons and vt

… allows easy setting of available keymaps …

Na verdade, é fácil e (para mim, mudar para um layout de teclado no Reino Unido) é eficaz.

Ao usar X

- por exemplo, com o TrueOS Desktop baseado em FreeBSD.

De post 5 em Alterar o layout do teclado? | Os Fóruns do FreeBSD (2015-08-03):

kbdmap is for the console. setxkbmap is the utility you want for X11. …

Há um aviso, por exemplo, ao mudar para U Reino Unido:

$ kbdmap
kbdcontrol: getting keymap: Inappropriate ioctl for device
You are not on a virtual console - expect certain strange side-effects
lang_default = en
dialect = en_...UTF-8
lang_abk = en

…

keymap="uk.kbd"
$ 
    
por 17.01.2017 / 09:16
1

Dependendo da distro para os layouts de teclado, o comando é

loadkeys <path/to/file>

loadkey /lib/kbd/keymaps/i386/qwerty/pt_PT.map.gz

Se bem me lembro. Além disso, verifique a página de manual para loadkeys se você deseja atribuir chaves específicas a um comportamento específico.

    
por 11.06.2013 / 09:06
0

Dê uma olhada neste artigo da Howto Forge intitulado: Changing The Language & Layout do teclado em várias distribuições , para os vários comandos para alterar o layout do teclado em diferentes distros.

A maioria desses comandos apresenta como GUIs, mas se você olhar a maioria deles pode ser executado a partir da linha de comando também. Por exemplo, estou usando o Fedora (uma distro baseada no Red Hat). O comando system-config-keyboard quando executado sem argumentos mostra-me uma GUI.

Mas se eu executar system-config-keyboard --help , ele também poderá ser executado a partir da linha de comando:

$ system-config-keyboard --help
Usage: system-config-keyboard [--help] [--noui] [--text] [<keyboardtype>]
       --help            Print out this message.
       --noui            Run in command line mode.
       --text            Run in text interface mode.

       <keyboardtype> options are: ar-azerty, ar-azerty-digits, ar-digits, ar-qwerty, ar-qwerty-digits, be-latin1, ben, ben-probhat, bg_bds-utf8, bg_pho-utf8, br-abnt2, cf, croat, cz-lat2, cz-us-qwertz, de, de-latin1, de-latin1-nodeadkeys, dev, dk, dk-latin1, dvorak, es, et, fi, fi-latin1, fr, fr-latin1, fr-latin9, fr-pc, fr_CH, fr_CH-latin1, gr, guj, gur, hu, hu101, ie, is-latin1, it, it-ibm, it2, jp106, ko, la-latin1, mk-utf, nl, no, pl2, pt-latin1, ro, ro-cedilla, ro-std, ro-std-cedilla, ru, sg, sg-latin1, sk-qwerty, slovene, sr-cy, sr-latin, sv-latin1, tj, tml-inscript, tml-uni, trq, ua-utf, uk, us, us-acentos

Para alterar o layout do meu teclado para o russo, eu poderia executar o seguinte comando:

$ system-config-keyboard ru
    
por 11.06.2013 / 12:27