Comment changer les claviers à partir de la ligne de commande?

65

Comment modifier les dispositions de clavier à partir de la ligne de commande? Par exemple, je veux passer de l'anglais à l'hébreu. Je peux le faire depuis lightdm avec la petite icône située dans le coin de mon écran.

Eyal
la source

Réponses:

43

Du terminal

Anglais vers 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'infos sur setxkbmap dans le manuel

man setxkbmap
NickTux
la source
Informations sur la façon de le configurer au démarrage: wiki.gentoo.org/wiki/Keyboard_layout_switching
Adriano P
52

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 en espagnol) dans la ligne de commande Linux, tapez la commande suivante:

loadkeys es

Pour X:

setxkbmap es

Pour appliquer ces modifications à l’ensemble du système, en supposant que vous utilisiez Ubuntu, vous pouvez utiliser les éléments suivants:

sudo dpkg-reconfigure console-setup
Dr_Bunsen
la source
Cela a un effet sur tty1, tty2, etc., mais aucun effet dans X. Je souhaite le faire sous X, de la même manière que le commutateur de clavier dans lightdm fonctionne.
Eyal
J'ai ajouté une commande dans la réponse, était-ce ce que vous recherchiez?
Dr_Bunsen
OUI! Merci. Aussi, pouvez-vous mettre à jour votre réponse en mentionnant loadkeys, orthographié avec un 's'?
Eyal
2
oui je le ferai, et non merci. Il suffit de marquer comme résolu pour que tout le monde le sache.
Dr_Bunsen
pour les utilisateurs de redhat, voici les pièces de valeur: /usr/share/X11/xkb/symbols/etsetxkbmap es
Peter Butkovic
13

Ubuntu 13.10 ou plus tard

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

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

0 est l'index de présentation (0 par défaut ou disposition supérieure). Layouts indexés à partir de 0.

Pour une utilisation facile, créez un alias.

utilisateur.dz
la source
2
Cette réponse est supérieure car elle change réellement l'indicateur. Juste ce que je cherchais.
Ainar-G
1
Merci. a également utilisé votre réponse ici: askubuntu.com/a/984981/6193
Alexey
3
Cela ne fonctionne pas sur GNOME 3.26. Il dit "Cette clé est déconseillée et ignorée".
Hugomg
@hugomg, pour l'instant je n'ai pas encore accès au nouveau gnome. mais vous pouvez essayer d’utiliser dconf-editortool et check /org/gnome/desktop/. ils peuvent simplement le renommer.
user.dz
12
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 par right alt+ shiftet de vous sauver de left alt+ shift.

ansar313
la source
3

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

$ xkb-switch       # display current group
ua
$ xkb-switch -l    # list groups
us
ua
$ xkb-switch -s us # switch to a named group
$

Cela semble meilleur que les autres solutions, car setxkbmap <name>toutes les options sont gâchées et setxkbmap -layout <name>, même si elles sont préservées, le changement de l'indicateur de la barre des tâches et du grp_ledparamètre if n'est toujours pas possible .


Caveat

Si vos ~/.config/kxkbrcutilisations LayoutLoopCount(par exemple, il est défini sur moins que le 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

dans ce xkb-switchcas, vous ne pourrez que basculer entre les présentations du groupe actuel.


Invoquer au verrouillage de l'écran

J'ai remarqué ton commentaire:

Juste avant que mon économiseur d'écran ne s'allume, je souhaite passer en anglais, de sorte qu'il sera facile de taper mon mot de passe à mon retour.

C’était précisément mon objectif, alors voici la réponse:
pour ce faire, il vous suffit de l’envelopper dans un script accroché à la dbus-monitorforme décrite ici .

bytebuster
la source
3

En utilisant gsettings dans 18.04+ avec Gnome, vous pouvez à la fois ajouter des dispositions de clavier et les changer à partir de la ligne de commande ou du sélecteur de disposition de clavier sur le bureau.

1.Modèles de clavier et options:

$ gsettings list-recursively org.gnome.desktop.input-sources
org.gnome.desktop.input-sources show-all-sources false
org.gnome.desktop.input-sources xkb-options ['terminate:ctrl_alt_bksp']
org.gnome.desktop.input-sources per-window false
org.gnome.desktop.input-sources current uint32 1
org.gnome.desktop.input-sources mru-sources @a(ss) []
org.gnome.desktop.input-sources sources [('xkb', 'es'), ('xkb', 'no')]

2.Ajout de dispositions de clavier:

$ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'no'),('xkb','gr')]"
$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'es'), ('xkb', 'no'), ('xkb', 'gr')]

3.Changement de la disposition de clavier actuelle à partir de la ligne de commande:

$ gsettings set org.gnome.desktop.input-sources current 1

Comme nous avons maintenant 3 langues différentes, nous avons trois choix de 0 à 2, 1 étant l'espagnol, 2 le norvégien et 3 le grec. Par conséquent, si vous définissez la valeur actuelle sur 1 ci-dessus, Norwegian est la configuration de clavier actuelle.

4. Liste de toutes les configurations de clavier possibles:

cat //usr/share/X11/xkb/rules/base.lst

5. Modifier la disposition du clavier avec un raccourci clavier:

Un raccourci clavier est préconfiguré pour modifier la disposition du clavier. Le raccourci actuel:

$ gsettings get org.gnome.desktop.wm.keybindings switch-input-source
['<Super>space']

Un nouveau raccourci peut être défini à l'aide de gsetting set, mais veillez à ne pas utiliser un raccourci déjà utilisé. Pour lister tous les raccourcis utilisés:

$ gsettings list-recursively org.gnome.desktop.wm.keybindings
org.gnome.desktop.wm.keybindings cycle-windows-backward ['<Shift><Alt>Escape']
org.gnome.desktop.wm.keybindings minimize ['<Super>h']
org.gnome.desktop.wm.keybindings move-to-workspace-7 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-8 @as []
org.gnome.desktop.wm.keybindings move-to-workspace-9 @as []
org.gnome.desktop.wm.keybindings move-to-monitor-left ['<Super><Shift>Left']
...
ElToro1966
la source
C'est la réponse la plus complète, bravo pour cela.
Julien Chappuis
1

Pour Ubuntu 18.04 + Gnome, les autres réponses ne fonctionnaient pas pour moi, mais cela ne fonctionnait pas:

gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
 "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

L'argument dans "inputSources [0]" est l'index de la disposition du clavier, identique à celui de la solution gsettings.

Trouvé sur Linux StackExchange .

1mi
la source
-1

Juste par curiosité, pourquoi voudriez-vous faire ça? Pourquoi voudriez-vous ouvrir un terminal et ils tapent une commande pour changer la disposition de votre clavier quand vous pouvez le faire avec un simple raccourci clavier! En supposant que vous utilisiez Ubuntu, cela passe en Windows+Space

EetSandhu
la source
2
Cela semble être plus un commentaire et moins une réponse.
WinEunuuchs2Unix
Juste avant que mon économiseur d'écran ne s'allume, je souhaite passer en anglais afin de pouvoir taper facilement mon mot de passe à mon retour.
Eyal
c'est aussi utile pour créer des raccourcis clavier personnalisés
Vassilis
Cela ne fonctionne pas dans Ubuntu 16.04 sur une virtualbox.
Juha Untinen