Jak zmienić klawiatury z wiersza poleceń?


65

Jak zmienić układ klawiatury z wiersza polecenia? Na przykład chcę przejść z języka angielskiego na hebrajski. Jestem w stanie to zrobić z lightdm z małą ikoną w rogu ekranu.

Odpowiedzi:


43

Z terminala

Angielski na hebrajski i odwrotnie z Alt+Shift

setxkbmap -option grp:alt_shift_toggle us,il

Za pomocą tego polecenia możesz zobaczyć wszystkie aliasy regionalne

cat /etc/locale.alias

Więcej informacji o setxkbmap w instrukcji

man setxkbmap

Informacje o tym, jak ustawić go przy rozruchu: wiki.gentoo.org/wiki/Keyboard_layout_switching
— Adriano P

52

Wszystkie różne mapy klawiszy można znaleźć w następujących lokalizacjach:

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

Aby zmienić układ klawiatury (np. Na hiszpański) w wierszu poleceń systemu Linux, wpisz następujące polecenie:

loadkeys es

Dla X:

setxkbmap es

Aby wprowadzić te zmiany w całym systemie, zakładając, że używasz Ubuntu, możesz użyć:

sudo dpkg-reconfigure console-setup

Ma to wpływ na tty1, tty2 itp., Ale nie ma efektu w X. Chcę to zrobić w X, w taki sam sposób, jak działa przełącznik klawiatury w lightdm.
— Oko

Dodałem polecenie w odpowiedzi, czy tego właśnie szukałeś?
— Dr_Bunsen

TAK! Dzięki. Czy możesz również zaktualizować swoją odpowiedź, aby wspomnieć o klawiszach ładujących, pisanych za pomocą „s”?
— Oko

2
tak zrobię i nie, dziękuję. Po prostu oznacz jako rozwiązany, aby wszyscy wiedzieli.
— Dr_Bunsen

dla użytkowników redhat następujące cenne elementy: /usr/share/X11/xkb/symbols/isetxkbmap es
— Peter Butkovic

13

Ubuntu 13.10 lub nowszy

Działa to lepiej niż setxkbmap ze wskaźnikiem układu klawiatury Gnome / Unity.

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

0 to indeks układu (0 domyślny lub górny układ). Układy indeksowane od 0.

Dla łatwego użycia utwórz alias.


2
Ta odpowiedź jest lepsza, ponieważ faktycznie zmienia wskaźnik. Właśnie tego szukałem.
— Ainar-G

1
dzięki. użył twojej odpowiedzi również tutaj: askubuntu.com/a/984981/6193
— Alexey

3
To nie działa w GNOME 3.26. Mówi: „Ten klucz jest przestarzały i ignorowany”.
— hugomg

@hugomg, w tej chwili nie mam jeszcze dostępu do nowszego gnoma. ale możesz spróbować użyć dconf-editornarzędzia i sprawdzić /org/gnome/desktop/. mogą po prostu zmienić jego nazwę.
— user.dz

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

to polecenie pozwala przełączać się między angielskim a hebrajskim tylko przez right alt+ shifti uratować cię od left alt+ shift.


3

Wydaje się, że nie ma standardowego narzędzia CLI, ale xkb-switch jest małym narzędziem typu open source do wykonywania tego zadania. Właśnie przetestowałem go z Ubuntu 16.04.4 LTS i działa bezbłędnie.

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

Wygląda to lepiej niż inne rozwiązania, ponieważ setxkbmap <name>rujnuje wszystkie opcje i setxkbmap -layout <name>chociaż zachowuje opcje, nadal nie zmienia wskaźnika paska zadań ani ustawienia grp_ledif.


Zastrzeżenie

Jeśli twoje ~/.config/kxkbrczastosowania LayoutLoopCount(na przykład jest ona ustawiona na mniej niż całkowita liczba układów wymienionych w LayoutList), na przykład:

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

następnie xkb-switchpozwolił tylko przełączać pomiędzy układami w obecnej grupie.


Wywołaj przy zablokowaniu ekranu

Zauważyłem twój komentarz:

Tuż przed włączeniem wygaszacza ekranu chcę przejść na angielski, aby po powrocie łatwo było wpisać hasło.

To był właśnie mój cel, więc oto odpowiedź:
Aby to zrobić, wystarczy tylko owinąć go w skrypt, który polubi dbus-monitoromawiany tutaj .


3

Korzystając z gsettings w wersji 18.04+ z Gnome, możesz zarówno dodawać układy klawiatury, jak i przełączać się między nimi z wiersza poleceń lub przełącznika układu klawiatury na pulpicie.

1. Przedstaw układy klawiatury i opcje:

$ 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. Dodawanie układów klawiatury:

$ 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.Zmiana bieżącego układu klawiatury z wiersza poleceń:

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

Ponieważ mamy teraz 3 różne języki, mamy trzy opcje od 0 do 2, z których 1 to hiszpański, 2 to norweski, a 3 grecki. Zatem ustawienie prądu na 1 powyżej powoduje, że norweski układ klawiatury jest obecny.

4. Lista wszystkich możliwych układów klawiatury:

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

5.Zmiana układu klawiatury za pomocą skrótu klawiaturowego:

Skrót klawiaturowy jest wstępnie skonfigurowany do zmiany układu klawiatury. Obecny skrót:

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

Nowy skrót można ustawić za pomocą zestawu gsetting, ale uważaj, aby nie używać już używanego skrótu. Aby wyświetlić listę wszystkich używanych skrótów:

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

To najbardziej wyczerpująca odpowiedź, za to.
— Julien Chappuis

1

W przypadku Ubuntu 18.04 + Gnome inne odpowiedzi nie działały dla mnie, ale to:

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()"

Argument w „inputSources [0]” to indeks układu klawiatury, taki sam jak w przypadku rozwiązania gsettings.

Znalazłem go na linux StackExchange .


-1

Właśnie z ciekawości, dlaczego miałbyś to zrobić? Po co otwierać terminal, a oni wpisują polecenie zmiany układu klawiatury, gdy można to zrobić za pomocą prostego skrótu klawiaturowego! Zakładając, że używasz Ubuntu, działa jak Windows+Space


2
To wydaje się być raczej komentarzem, a nie odpowiedzią.
— WinEunuuchs2Unix

Tuż przed włączeniem wygaszacza ekranu chcę przejść na angielski, aby po powrocie łatwo było wpisać hasło.
— Eyal

jest także przydatny do tworzenia niestandardowych skrótów klawiaturowych
— Vassilis

To nie działa w Ubuntu 16.04 na virtualbox.
— Juha Untinen,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.