Come cambio le tastiere dalla riga di comando?


65

Come cambio layout di tastiera dalla riga di comando? Ad esempio, voglio passare dall'inglese all'ebraico. Sono in grado di farlo da LightDM con la piccola icona nell'angolo del mio schermo.

Risposte:


43

Dal terminale

Dall'inglese all'ebraico e viceversa con Alt+Shift

setxkbmap -option grp:alt_shift_toggle us,il

Puoi vedere tutti gli alias locali con questo comando

cat /etc/locale.alias

Maggiori informazioni su setxkbmap nel manuale

man setxkbmap

Informazioni su come impostarlo all'avvio: wiki.gentoo.org/wiki/Keyboard_layout_switching
Adriano P

52

Puoi trovare tutte le diverse keymap nelle seguenti posizioni:

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

Per modificare il layout della tastiera (ad esempio in spagnolo) nella riga di comando di Linux, digitare il comando seguente:

loadkeys es

Per X:

setxkbmap es

Per rendere queste modifiche a livello di sistema, supponendo che tu stia utilizzando Ubuntu, puoi utilizzare quanto segue:

sudo dpkg-reconfigure console-setup

Questo ha effetto su tty1, tty2, ecc., Ma nessun effetto su X. Voglio farlo su X, allo stesso modo in cui funziona il commutatore di tastiera in lightdm.
Eyal,

Ho aggiunto un comando nella risposta, era questo quello che stavi cercando?
Dr_Bunsen,

SÌ! Grazie. Inoltre, puoi aggiornare la tua risposta per menzionare i loadkey, digitati con una "s"?
Eyal,

2
sì, lo farò e no grazie. Contrassegna come risolto in modo che tutti lo sappiano.
Dr_Bunsen,

per gli utenti redhat, i seguenti pezzi sono preziosi: /usr/share/X11/xkb/symbols/esetxkbmap es
Peter Butkovic,

13

Ubuntu 13.10 o successivo

Funziona meglio di setxkbmap con l'indicatore di layout della tastiera Gnome / Unity.

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

0 è l'indice del layout (0 predefinito o layout superiore). Layout indicizzati a partire da 0.

Per un facile utilizzo, creare un alias.


2
Questa risposta è superiore perché in realtà cambia l'indicatore. Proprio quello che stavo cercando.
Ainar-G,

1
Grazie. ho
Alexey

3
Questo non funziona su GNOME 3.26. Dice "Questa chiave è obsoleta e ignorata".
hugomg

@hugomg, in questo momento non ho ancora accesso al nuovo gnomo. ma puoi provare a usare lo dconf-editorstrumento e controllare /org/gnome/desktop/. potrebbero semplicemente rinominarlo.
user.dz

12
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

questo comando consente di alternare tra inglese ed ebraico solo tramite right alt+ shifte salvarti da left alt+ shift.


3

Sembra che non ci sia uno strumento CLI standard, ma xkb-switch è un piccolo strumento open source per fare il lavoro. L'ho appena provato con Ubuntu 16.04.4 LTS e funziona perfettamente.

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

Questo sembra migliore rispetto alle altre soluzioni perché setxkbmap <name>rovina tutte le opzioni e setxkbmap -layout <name>, pur conservando le opzioni, non riesce ancora a modificare l'indicatore della barra delle applicazioni né l' grp_ledimpostazione if.


Avvertimento

Se i tuoi ~/.config/kxkbrcusi LayoutLoopCount(ad es. È impostato su un numero inferiore al numero totale di layout elencati in LayoutList), in questo modo:

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

quindi xkb-switchti permetterebbe solo di passare da un layout all'altro del gruppo corrente.


Richiamare al blocco dello schermo

Ho notato il tuo commento:

Proprio prima che il mio salvaschermo si accenda, voglio passare all'inglese in modo che sia facile digitare la mia password quando torno.

Questo era esattamente il mio obiettivo, quindi ecco la risposta:
per farlo, basta avvolgerlo in uno script che si agganci dbus-monitorcome piace discusso qui .


3

Usando gsettings in 18.04+ con Gnome, puoi sia aggiungere aggiungere layout di tastiera sia passare da uno all'altro dalla riga di comando o dal selettore di layout di tastiera sul desktop.

1. Layout e opzioni della tastiera attuali:

$ 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. Aggiunta di layout di tastiera:

$ 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. Modifica della disposizione corrente della tastiera dalla riga di comando:

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

Dato che ora abbiamo 3 lingue diverse, abbiamo tre scelte da 0 a 2, con 1 in spagnolo, 2 in norvegese e 3 in greco. Pertanto, l'impostazione corrente su 1 sopra rende norvegese il layout di tastiera corrente.

4. Elenca tutti i possibili layout di tastiera:

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

5. Modifica del layout della tastiera con una scorciatoia da tastiera:

Una scorciatoia da tastiera è preconfigurata per modificare il layout della tastiera. La presente scorciatoia:

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

È possibile impostare un nuovo collegamento utilizzando gsetting set, ma fare attenzione a non utilizzare un collegamento già in uso. Per elencare tutte le scorciatoie in uso:

$ 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']
...

Questa è la risposta più completa, complimenti per questo.
Julien Chappuis,

1

Per Ubuntu 18.04 + Gnome le altre risposte non hanno funzionato per me, ma questo ha fatto:

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'argomento in "inputSources [0]" è l'indice del layout della tastiera, lo stesso che per la soluzione gsettings.

Trovato su Linux StackExchange .


-1

Solo per curiosità, perché dovresti farlo? Perché dovresti aprire un terminale e digitano un comando per cambiare il layout della tastiera quando puoi farlo con una semplice scorciatoia da tastiera! Supponendo che tu usi Ubuntu, va come Windows+Space


2
Questo sembra essere più un commento e meno una risposta.
WinEunuuchs2Unix,

Proprio prima che il mio salvaschermo si accenda, voglio passare all'inglese in modo che sia facile digitare la mia password quando torno.
Eyal

inoltre è utile per creare scorciatoie da tastiera personalizzate
Vassilis,

Questo non funziona in Ubuntu 16.04 su una virtualbox.
Juha Untinen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.