75 votes

Comment changer de clavier depuis la ligne de commande?

Comment puis-je changer de disposition de clavier en ligne de commande? Par exemple, je veux passer de l'anglais à l'hébreu. Je suis capable de le faire depuis lightdm avec le petit icône dans le coin de mon écran.

63voto

Dr_Bunsen Points 4510

Vous pouvez trouver toutes les différentes keymaps aux emplacements suivants :

/usr/share/keymaps/i386/
/usr/share/kbd/keymaps/i386/
/usr/share/X11/xkb/symbols/

Pour changer la disposition du clavier (par exemple pour passer en espagnol) dans la ligne de commande Linux, tapez la commande suivante :

loadkeys es

Pour X :

setxkbmap es

Pour appliquer ces changements à l'ensemble du système, en supposant que vous utilisez Ubuntu, vous pouvez utiliser la commande suivante :

sudo dpkg-reconfigure console-setup

50voto

NickTux Points 16549

De terminal

De l'anglais à l'hébreu et vice versa avec Alt + Shift

setxkbmap -option grp:alt_shift_toggle us,il

Vous pouvez voir tous les alias de locale avec cette commande

cat /etc/locale.alias

Plus d'informations sur setxkbmap dans le manuel

man setxkbmap

14voto

user.dz Points 45060

Ubuntu 13.10 ou ultérieur

Cela fonctionne mieux que setxkbmap avec l'indicateur de disposition du clavier Gnome/Unity.

gsettings set org.gnome.desktop.input-sources current 0

0 est l'index de la disposition (0 par défaut ou disposition supérieure). Les dispositions sont indexées à partir de 0.

Pour une utilisation facile, créez un alias.

12voto

ansar313 Points 169
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

Cette commande vous permet de basculer entre l'anglais et l'hébreu uniquement en utilisant alt droite+maj et vous évite d'utiliser alt gauche+maj.

6voto

bytebuster Points 227

Il semble qu'il n'y ait pas d'outil CLI standard, mais xkb-switch est un petit outil open-source pour faire le travail. Je viens de le tester avec Ubuntu 16.04.4 LTS et il fonctionne parfaitement.

$ xkb-switch       # afficher le groupe actuel
ua
$ xkb-switch -l    # lister les groupes
us
ua
$ xkb-switch -s us # passer à un groupe nommé
$

Cela semble meilleur que les autres solutions car setxkbmap annule toutes les options, et setxkbmap -layout , bien qu'il préserve les options, échoue toujours à changer l'indicateur de la barre des tâches ni le grp_led s'il est défini.


Attention

Si votre fichier ~/.config/kxkbrc utilise LayoutLoopCount (par exemple, s'il est défini à moins du nombre total de mises en page répertoriées dans LayoutList), comme ceci :

LayoutList=us,ua,th,de
LayoutLoopCount=2
Options=grp_led:scroll,grp:rwin_switch,compose:menu,lv3:ralt_switch,
        nbsp:level2,grp:rctrl_toggle,misc:typo

alors xkb-switch vous permettrait uniquement de basculer entre les mises en page du groupe actuel.


Appel lors du verrouillage de l'écran

J'ai remarqué votre commentaire :

Juste avant que mon économiseur d'écran ne s'active, je veux passer en anglais pour faciliter la saisie de mon mot de passe quand je reviendrai.

C'était précisément mon objectif, donc voici la réponse :
Pour ce faire, vous avez seulement besoin de l'encapsuler dans un script accroché à dbus-monitor comme discuté ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X