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

Я хочу выполнить команду оболочки или сценарий, который настроит каждое из моих полей Ubuntu Precise для использования раскладки клавиатуры Dvorak в качестве значения по умолчанию (и только) расположение. С более ранними версиями я смог установить XKBVARIANT в/etc/default/keyboard, но когда я вношу это изменение в Точном (и перезагрузка), раскладка клавиатуры, кажется, незатронута (и в консоли и в гноме).

Я пытался также установить XKBMODEL на pc105 и XKBLAYOUT нам, но это, казалось, не помогло.

Я знаю, что могу установить расположение для гнома, использующего инструмент 'раскладки клавиатуры'..., но я хочу, чтобы изменение влияло на консоль, и я хочу автоматизировать процесс. Как я могу выполнить это?

Править:

Для разъяснения я хочу знать, как я могу вызвать для изменения (использование только сценария или командной строки) раскладки клавиатуры, чтобы быть Dvorak как и только раскладкой клавиатуры по умолчанию и для Gnome и для консоли. Я хочу, чтобы это изменение было персистентным (переживите перезагрузки), как это - когда изменение внесено через инструмент Keyboard Layout.

Править:

Позвольте мне поместить его иначе. Если бы я установил операционную систему сам (который я сделал, не потому что ОС была установлена инфраструктурой виртуальной машины), то я, возможно, выбрал желаемую раскладку клавиатуры во время установки, и то расположение будет постоянно применяться в масштабе всей системы. Как я могу изменить расположение для появления, как будто я установил его во время процесса установки?

6
задан 21 May 2012 в 18:06

4 ответа

Я также использую Ubuntu 12.04 и имею stuggled с этой проблемой. Используя ответ Jason Coombs на его собственный вопрос как начальная точка, я смог использовать/etc/default/keyboard, чтобы установить мои опции клавиатуры (для меня, ctrl:nocaps и compose:menu) и иметь, которые сохраняются через перезагрузки для консолей. Однако установка была бы проигнорирована LightDM/Unity на перезагрузку. Для разъяснения я не установил предпочтений клавиатуры из Единицы, таким образом, Единица должна принять значение по умолчанию к настройкам клавиатуры системного значения по умолчанию, но она не использует опции клавиатуры по некоторым причинам.

я заметил, что, если я выполняю следующую команду после входа в систему, Единица внезапно начинает распознавать мои опции клавиатуры системного значения по умолчанию:

setxkbmap

я не предоставляю параметров к setxkbmap, я просто вызываю его без опций, и он читает и применяет карту системного значения по умолчанию.

, Чтобы заставить это произойти автоматически, когда любой пользователь входит в систему (по крайней мере, любой пользователь с Gnome или рабочим столом Единицы), я сделал следующий setxkbmap.desktop файл, который я поместил в/etc/xdg/autostart/каталог:

[Desktop Entry]
Type=Application
TryExec=/usr/bin/setxkbmap
Exec=/usr/bin/setxkbmap
Hidden=false
NoDisplay=true
X-GNOME-Autostart-enabled=true
Name[en_US]=System Keyboard Fix
Name=System Keyboard Fix
Comment[en_US]=Apply system-wide keyboard settings to the session
Comment=Applies system-wide keyboard settings to session

Эта фиксация, кажется, делает опции клавиатуры последовательными в масштабе всей системы, за исключением краткого периода, что LightDM имеет контроль над моим экраном, прежде чем я войду в систему.

3
ответ дан 22 October 2019 в 17:28

!!! Незаконченный ответ!!! (удаляют это предупреждение, если Вы знаете, как улучшить этот ответ)

можно использовать команду setxkbmap. Например

setxkbmap de

наборы текущий макет немецкому языку. С

setxkbmap us

можно установить его на американское расположение.

Предупреждение: я думаю, что эта команда сбрасывает также другие опции языка. Например, значок языка исчезает, когда я выполняю эту команду. Поэтому также очень трудно возвратиться к расположению с латинскими буквами, если бы Вы изменились на что-то как Cyrilic, китайский язык, то греческий язык и т.д. Кроме команды setxkbmap мог бы быть хорошей подсказкой для продолжения исследования, как переключить расположение.

-1
ответ дан 22 October 2019 в 17:28

Если Вы хотите изменить его в tty консолях (доступные через Ctrl+Alt+F1 или F2...) это:

loadkeys fr

для французского или этого для американской клавиатуры:

loadkeys us

, Хотя, я не уверен, работает ли это на консоли, запущенные в режиме X.org/graphical (иначе Консольное приложение от Unity/Gnome или Konsole от KDE). Необходимо дать ему попытку.

-1
ответ дан 22 October 2019 в 17:28
setxkbmap -option grp:alt_shift_toggle en
-1
ответ дан 22 October 2019 в 17:28

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

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