Как мне поменять клавиатуру из командной строки?

Как изменить раскладку клавиатуры из командной строки? Например, я хочу перейти с английского на иврит. Я могу сделать это из lightdm с маленькой иконкой в ​​углу моего экрана.

66
задан 30 October 2012 в 17:05

8 ответов

Можно найти все различные контурные карты в следующих местоположениях:

/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
53
ответ дан 30 October 2012 в 17:05

Кажется, нет никакого стандартного инструмента CLI, но xkb-переключатель является маленьким инструментом с открытым исходным кодом, чтобы сделать задание. Просто протестированный это с Ubuntu 16.04.4 LTS и это работают flawelessly.

$ 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_led если установлено.


Протест

Если Ваш ~/.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 как обсужденный здесь.

4
ответ дан 30 October 2012 в 17:05

Ubuntu 13.10 или новее

Это работает лучше, чем setxkbmap с индикатором раскладки клавиатуры Gnome / Unity.

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

0 - индекс макета (0 по умолчанию или топ-макет). Макеты проиндексированы, начиная с 0.

Для простоты использования создайте псевдоним.

0
ответ дан 30 October 2012 в 17:05
setxkbmap us,il -option "lv3:ralt_alt,grp:alt_shift_toggle"

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

0
ответ дан 30 October 2012 в 17:05

Используя 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']
...
3
ответ дан 30 October 2012 в 17:05

Из терминала

с английского на иврит и наоборот с помощью Alt + Shift

setxkbmap -option grp:alt_shift_toggle us,il

Вы можете увидеть все псевдонимы локали с помощью этой команды

cat /etc/locale.alias

Подробнее о setxkbmap в руководстве

man setxkbmap
0
ответ дан 30 October 2012 в 17:05

Просто из любопытства, зачем ты это делаешь? Зачем вам открывать терминал, и они вводят команду для переключения раскладки клавиатуры, когда вы можете сделать это простым сочетанием клавиш! Предполагая, что вы используете Ubuntu, он выглядит как Windows + Space

0
ответ дан 30 October 2012 в 17:05

Для 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
ответ дан 17 October 2019 в 10:58

Другие вопросы по тегам:

Похожие вопросы: