Як змінити клавіатури з командного рядка?


65

Як змінити розкладку клавіатури з командного рядка? Наприклад, я хочу перейти з англійської на іврит. Я можу це зробити з lightdm з маленькою піктограмою в куті мого екрана.

Відповіді:


43

З терміналу

Англійська - іврит та навпаки Alt+Shift

setxkbmap -option grp:alt_shift_toggle us,il

Ви можете побачити всі псевдоніми локалів за допомогою цієї команди

cat /etc/locale.alias

Більше інформації про setxkbmap в посібнику

man setxkbmap

Інформація про те, як встановити його під час завантаження: wiki.gentoo.org/wiki/Keyboard_layout_switching
Adriano P

52

Ви можете знайти всі різні ключові карти в таких місцях:

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

Щоб змінити розкладку клавіатури (наприклад, на іспанську), у командному рядку Linux введіть таку команду:

loadkeys es

Для X:

setxkbmap es

Щоб зробити ці зміни системою широкими, якщо припустити, що ви використовуєте Ubuntu, ви можете використовувати наступне:

sudo dpkg-reconfigure console-setup

Це впливає на tty1, tty2 і т. Д., Але ніякого ефекту в X. Я хочу зробити це в X, так само, як працює перемикач клавіатури в lightdm.
Eyal

Я додав у відповідь команду, це те, що ви шукали?
Dr_Bunsen

ТАК! Дякую. Також, чи можете ви оновити свою відповідь, щоб згадати завантажувальні клавіші, написані символом "s"?
Eyal

2
так, я буду, і не дякую. Просто позначте як вирішене, щоб усі знали.
Dr_Bunsen

Для користувачів redhat наступні цінні фрагменти: /usr/share/X11/xkb/symbols/таsetxkbmap es
Петро Буткович

13

Ubuntu 13.10 або новіших версій

Це краще, ніж setxkbmap з індикатором розкладки клавіатури Gnome / Unity.

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

0 - індекс макета (0 за замовчуванням або верхній макет). Макети, індексовані починаючи з 0.

Для зручного використання створіть псевдонім.


2
Ця відповідь є вищою, оскільки вона фактично змінює показник. Тільки те, що я шукав.
Айнар-Г

1
Дякую. використали свою відповідь також тут: askubuntu.com/a/984981/6193
Олексій

3
Це не працює в GNOME 3.26. У ньому написано "Цей ключ застарілий і проігнорований".
хугомг

@hugomg, зараз у мене ще немає доступу до новішого гнома. але ви можете спробувати скористатися dconf-editorінструментом і перевірити /org/gnome/desktop/. вони можуть просто перейменувати його.
user.dz

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

ця команда дозволяє вам перемикатися між англійською та івритом лише через right alt+ shiftта врятувати вас від left alt+ shift.


3

Здається, не існує стандартного інструменту CLI, але xkb-перемикач - це невеликий інструмент з відкритим кодом для виконання роботи. Щойно тестував його з Ubuntu 16.04.4 LTS, і він працює бездоганно.

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

Це виглядає краще, ніж інші рішення, оскільки setxkbmap <name>руйнує всі параметри, і setxkbmap -layout <name>, хоча він зберігає параметри, він все ще не змінює індикатора панелі завдань, аніж значення " grp_ledif".


Caveat

Якщо ви ~/.config/kxkbrcвикористовуєте LayoutLoopCount(наприклад, встановлено менше загальної кількості макетів, перелічених у LayoutList), наприклад:

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

тоді ви xkb-switchб лише переключились між макетами в поточній групі.


Викликати при блокуванні екрана

Я помітив ваш коментар:

Перед тим, як моя заставка увімкнеться, я хочу перейти на англійську мову, щоб було легко ввести свій пароль, коли я повернусь.

Це була саме моя мета, так ось відповідь: Для того,
щоб зробити це, вам потрібно всього лише загорнути його в підсікати сценарій , щоб dbus-monitorподобається обговорюваної тут .


3

Використовуючи gsettings в 18.04+ за допомогою Gnome, ви можете додати додавання макетів клавіатури та перемикатися між ними з командного рядка або з перемикача розкладки клавіатури на робочому столі.

1. Присутні розкладки та параметри клавіатури:

$ 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.Додавання макетів клавіатури:

$ 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. Змінення поточного розкладки клавіатури з командного рядка:

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

Оскільки зараз у нас є 3 різні мови, у нас є три варіанти від 0 до 2, 1 - іспанська, 2 - норвезька та 3 - грецька. Таким чином, встановлення поточного значення 1 вище робить норвезькою поточну розкладку клавіатури.

4. Перелік усіх можливих розкладок клавіатури:

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

5. Зміна розкладки клавіатури за допомогою комбінації клавіш:

Комбінація клавіш попередньо налаштована для зміни розкладки клавіатури. Нинішній ярлик:

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

Новий ярлик можна встановити за допомогою набору gsetting, але стежте за тим, щоб не використовувати ярлик, який вже використовується. Щоб перелічити всі використовувані ярлики:

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

Це найповніша відповідь, кудо за це.
Жульєн Шаппуа

1

Для Ubuntu 18.04 + Gnome інші відповіді не працювали для мене, але це було так:

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

Аргумент у "inputSources [0]" - це індекс розкладки клавіатури, такий самий, як і для рішення gsettings.

Знайшов його на Linux StackExchange .


-1

Щойно з цікавості, чому б ти це робив? Навіщо ви відкривати термінал, і вони набирають команду перемикати розкладку клавіатури, коли це можна зробити за допомогою простого клавіатурного комбінації! Якщо припустити, що ви використовуєте Ubuntu, він іде як Windows+Space


2
Здається, це більше коментарів, а менше відповідей.
WinEunuuchs2Unix

Перед тим, як моя заставка увімкнеться, я хочу перейти на англійську, щоб було легко набрати пароль, коли я повернусь.
Eyal

також корисно робити спеціальні комбінації клавіш
Vassilis

Це не працює в Ubuntu 16.04 у віртуальній скриньці.
Juha Untinen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.