web-dev-qa-db-fra.com

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

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.

62
Eyal

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
44
NickTux

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 modifier 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
50
Dr_Bunsen

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.

13
user.dz
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

cette commande vous permet de basculer entre l'anglais et l'hébreu que par right alt+shift et vous sauver de left alt+shift.

11
ansar313

Il semble n'y avoir aucun outil CLI standard, mais xkb-switch est un petit outil à code source ouvert permettant d'effectuer 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> détruit toutes les options, et setxkbmap -layout <name>, tout en préservant les options, il ne parvient toujours pas à modifier le code de la barre des tâches ni le grp_led s'il est défini.


Caveat

Si votre ~/.config/kxkbrc utilise LayoutLoopCount(il est par exemple défini sur une valeur inférieure au nombre total de mises en forme répertoriées dans LayoutListname__), comme suit:

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 ne vous permettrait que de 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 s’accrochant à dbus-monitor comme indiqué ci-dessus ici .

3
bytebuster

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 o à partir de le sélecteur de disposition du 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. Ainsi, si vous définissez current sur 1 ci-dessus, le clavier norvégien est actuellement configuré.

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']
...
3
ElToro1966

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, le même que pour la solution gsettings.

Trouvé sur linux StackExchange .

1
1mi