В этом ответе объясняется, как установить международную расширенную раскладку клавиатуры Дворака, найденную в этой статье Арьена ван Кола. Установка и настройка были довольно простыми с использованием XKB.
Загрузите файл макета dvorak_intl
из статьи по ссылке. Затем скопируйте файл как суперпользователь в /usr/share/X11/xkb/symbols/
с тем же именем файла.
sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl
Нет необходимости в дальнейшем изменении разрешения. Для любопытных пользователей используйте команду stat
для проверки разрешения. Разрешение по умолчанию 644
.
$ ls -l /usr/share/X11/xkb/symbols/dvorak_intl
-rw-r--r-- 1 root root 2989 May 14 17:32 /usr/share/X11/xkb/symbols/dvorak_intl
$ stat -c '%a %n' /usr/share/X11/xkb/symbols/dvorak_intl
644 /usr/share/X11/xkb/symbols/dvorak_intl
Перед внесением изменений запустите setxkbmap -query
, чтобы проверить текущий макет на случай, если мы захотим отменить изменения позже. По умолчанию макет us
.
$ setxkbmap -query
rules: evdev
model: pc105
layout: us <-- current layout
Теперь запустите команду setxkbmap
, чтобы установить новую раскладку клавиатуры. Опция -verbose
была добавлена для просмотра вывода, который в противном случае ничего не покажет.
$ setxkbmap -verbose dvorak_intl
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete
symbols: pc+dvorak_intl+inet(evdev)
geometry: pc(pc105)
Пользователь может снова запустить setxkbmap -query
, чтобы проверить изменения, которые были сделаны и теперь отображаются в столбце макета.
$ setxkbmap -query
rules: evdev
model: pc105
layout: dvorak_intl <-- new layout
Изменения вступят в силу немедленно; вообще не нужно выходить из системы или перезагружать X-сервер. Откройте текстовый редактор, затем нажмите каждую клавишу из четырех рядов на клавиатуре, чтобы увидеть вывод.
Клавиши первого и второго уровня (без и с Shift):
`1234567890[]
~!@#$%^&*(){}
´,.pyfgcrl/=\
¨<>PYFGCRL?+|
aoeuidhtns-
AOEUIDHTNS_
;qjkxbmwvz
:QJKXBMWVZ
Клавиши третьего и четвертого уровня (с AltGr и Shift+ AltGr):
¡ ♯
[]{}
´¸… č
«»¶ ¿
å°əŭ ß—
Å Ŭ ¯
ĸ×
Не уверен, что отсутствуют какие-либо клавиши для третьего и четвертого уровней раскладки клавиатуры dvorak_intl
, так как я не привык печатать на этих уровнях.
Команда setxkbmap
сама по себе эффективна только для текущего сеанса. Однако можно добавить следующую команду для запуска приложений в соответствующей среде рабочего стола.
setxkbmap LAYOUTNAME
Чтобы LAYOUTNAME
устанавливалось каждый раз, когда пользователь входит в систему и запускается сеанс рабочего стола. Выйдите из системы и войдите снова, затем откройте Терминал и запустите setxkbmap -query
, чтобы убедиться, что новая раскладка клавиатуры применялась для каждого сеанса.
Если обновление системы перезаписывает файл конфигурации в /usr/share/X11/xkb/symbols
, пользователь может переместить файл конфигурации макета в другое место. - возможно, домашний каталог - и удалить из системного каталога, чтобы быть уверенным.
$ mkdir -p ~/.xkb/symbols
$ cp /usr/share/X11/xkb/symbols/dvorak_intl ~/.xkb/symbols
$ sudo rm -i /usr/share/X11/xkb/symbols/dvorak_intl
Затем загрузите оттуда конфигурацию макета, используя команду с параметром -I
. Это работает аналогично.
$ setxkbmap -I ~/.xkb dvorak_intl
$ setxkbmap -query
rules: evdev
model: pc105
layout: dvorak_intl
Таким образом, вместо setxkbmap ИМЯ ПЛАНЕТА
добавьте setxkbmap -I ~/.xkb ИМЯ ПЛАНЕТА
для запуска приложения в соответствующей среде рабочего стола, чтобы загружать конфигурацию клавиатуры для каждого сеанса.
Если команда возвращает сообщение «Ошибка при загрузке нового описания клавиатуры» (как описано в этом старом сообщении на Unix.SE), используйте вместо этого следующую команду.
$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY
Warning: Type "ONE_LEVEL" has 1 levels, but has 2 symbols
Ignoring extra symbols
Warning: Key not found in evdev+aliases(qwerty) keycodes
Symbols ignored
...
Warning: No symbols defined for (keycode 253)
Как ни странно, последняя команда возвращает много предупреждающих сообщений, которые могут быть связаны с моей иностранной моделью клавиатуры (японский вариант раскладки клавиатуры OADG 109A). Кроме того, изменения не будут отражены в setxkbmap -query
, но при вводе работают должным образом.
Протестировано с использованием setxkbmap 1.3.0 в Xubuntu 14.04 (Xfce 4.10), Debian Xfce 8 (Xfce 4.10) и Debian 8.7 Gnome 3.14.
Отказ от ответственности: Этот ответ предназначен для того, чтобы показать, как использовать XKB для установки и настройки новой раскладки клавиатуры. Исходная инструкция была найдена в репозитории workman/xorg, в котором упоминались как устаревший, так и текущий пути (тогда для Ubuntu 10.04, GNOME 2.30). Тем не менее, инструкция была протестирована для среды, отличной от GNOME, то есть для Xfce.
Устаревшие инструкции, содержащиеся в файле dvorak_intl
, скорее всего, предназначались для более старых выпусков GNOME и больше не действительны для современных дистрибутивов, которые мы используем сегодня. В то время как устаревший путь находится по адресу /etc/X11/xkb/symbols/
, текущий путь находится по адресу /usr/share/X11/xkb/symbols/
.
Клавиша AltGr относится к клавише создания сообщения. Он не назначается по умолчанию (по крайней мере, в Xfce) или обычно клавише Right Alt, в зависимости от используемого дистрибутива Linux.Хотя я включил клавишу создания для демонстрации клавиш третьего и четвертого уровней, настройка клавиши создания , а не показана выше.