Вопрос или проблема
Я пытаюсь создать пользовательский вариант клавиатуры для Ubuntu 17.10 с дефолтным Gnome (Xorg).
В файле /usr/share/X11/xkb/symbols/be я добавил следующий текст:
partial alphanumeric_keys
xkb_symbols "r03" {
include "be(basic)"
name[Group1]="Belgian (r03)";
key <TLDE> { [ at, threesuperior, onesuperior, lessthanequal ] };
};
Будет больше изменений, но это тест. Клавиша над табуляцией должна быть ‘@’.
(Полная раскладка доступна здесь: https://github.com/roelandmoors/azerty#installing-on-linux)
Я также изменил /usr/share/X11/xkb/rules/evdev.xml, чтобы добавить этот новый вариант в раскладку ‘be’:
<variant>
<configItem>
<name>r03</name>
<description>Belgian (r03)</description>
</configItem>
</variant>
Папка /var/lib/xkb содержит только readme.
Когда я использую setxkbmap -layout be -variant r03
, новая раскладка, кажется, работает нормально.
Проблема в том, что я не могу выбрать новый вариант, когда выполняю sudo dpkg-reconfigure keyboard-configuration
. В настройках Gnome я вообще не могу выбрать вариант. Я попробовал изменить с помощью редактора dconf /org/gnome/desktop/input-sources/sources
на [('xkb', 'be+r03')]
, но затем я получаю раскладку querty вместо azerty. (фолбэк, если настройки неверны?)
Как я могу сделать мою новую раскладку доступной для выбора в настройках. Я хочу, чтобы это была моя раскладка клавиатуры по умолчанию (также в gdm).
Обновление:
Я добился работы sudo dpkg-reconfigure keyboard-configuration
, но это выглядит очень некрасиво. (не делайте это, просто отредактируйте /etc/default/keyboard)
Скопируйте вывод этой команды:
sudo /usr/share/console-setup/kbdnames-maker /usr/share/console-setup/KeyboardNames.pl | grep r03
Это должно выглядеть примерно так: C*variant*be*r03*Belgian - Belgian (r03)
Затем добавьте эту строку в этот файл: (ищите похожие строки)
sudo vi /var/lib/dpkg/info/keyboard-configuration.config
Теперь вы можете выбрать новый вариант в dpkg-reconfigure keyboard-configuration
.
Чтобы сделать пользовательскую раскладку доступной также на экране входа, вы можете перейти в Настройки -> Регион и Язык, нажать кнопку Экран входа в правом верхнем углу окна и добавить её там.
Ручной способ сделать пользовательскую раскладку доступной на экране входа – это отредактировать файл /etc/default/keyboard
. Предположим, что в настоящее время он включает эти две строки:
XKBLAYOUT="be"
XKBVARIANT=""
вы можете, например, изменить их следующим образом:
XKBLAYOUT="be,be"
XKBVARIANT="r03,"
После следующей перезагрузки индикатор раскладки клавиатуры должен быть виден, позволяя выбирать между Belgian (r03) и Belgian. Вероятно, первый будет выбран по умолчанию.
Ответ или решение
Для решения проблемы с выбором кастомного варианта клавиатуры в Ubuntu 17.10, необходимо выполнить несколько шагов.
Во-первых, вы уже правильно внесли изменения в файл /usr/share/X11/xkb/symbols/be
, добавив следующий код:
partial alphanumeric_keys
xkb_symbols "r03" {
include "be(basic)"
name[Group1]="Belgian (r03)";
key <TLDE> { [ at, threesuperior, onesuperior, lessthanequal ] };
};
Затем вы внесли изменения в файл /usr/share/X11/xkb/rules/evdev.xml
, добавив описание варианта:
<variant>
<configItem>
<name>r03</name>
<description>Belgian (r03)</description>
</configItem>
</variant>
Проблема возникает при попытке выбрать эту раскладку через интерфейс настройки клавиатуры, а также автоматически установить её в качестве стандартной на экране входа в GNOME.
Решение проблемы
-
Корректировка команды dpkg-reconfigure:
Судя по вашему описанию, вы уже нашли временное решение, связанное с изменением файла
/var/lib/dpkg/info/keyboard-configuration.config
. Вы добавили строку, отображающую ваш кастомный вариант, что позволило выбрать его черезdpkg-reconfigure keyboard-configuration
.C*variant*be*r03*Belgian - Belgian (r03)
-
Настройка файла
/etc/default/keyboard
:Для того чтобы ваш вариант клавиатуры использовался на экране входа, отредактируйте файл
/etc/default/keyboard
таким образом:XKBLAYOUT="be,be" XKBVARIANT="r03,"
Это даст возможность выбора между стандартным и кастомным вариантами клавиатуры. После перезагрузки система будет предлагать выбрать между "Belgian (r03)" и обычной "Belgian" раскладкой.
-
Настройка через интерфейс GNOME:
В GNOME вы можете сделать следующее для применения кастомной раскладки на экране входа:
- Перейдите в Настройки → Регион и язык.
- Нажмите кнопку "Экран входа" в правом верхнем углу.
- Добавьте ваш кастомный вариант клавиатуры там же.
Заключение
Данная последовательность шагов позволяет корректно интегрировать кастомный вариант клавиатуры в систему Ubuntu и сделать его доступным как на рабочем столе, так и на экране входа. Помощь от ручной настройки /etc/default/keyboard
и использование инструментов командной строки позволяло обойти ограничения GUI интерфейса на Linux.
Это решение не только удовлетворяет ваш запрос о кастомизации, но и улучшает удобство использования принимая во внимание потребности администрации системы. Не забудьте проверять изменения после каждого шага для убеждения в корректности работы системы.