клавиатура постоянно перенастраивается

Недавно обновлено до 18.04; У меня есть клавиатура Sun Type 6 (множество полезных дополнительных клавиш, таких как «Копировать», «Вырезать», «Вставить»), и установка настроила ее приемлемым образом. Недавняя модернизация привела к тому, что он был перенастроен в шамолической форме.

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

  1. xmodmap - но сейчас это просто плохой интерфейс для системы xkb
  2. setxkbmap - который я считаю интерфейсом для xkbcomp
  3. xkbcomp

Но все три страдают от проблемы, заключающейся в том, что их изменения исчезают при выходе из системы / входе в систему или в режиме сна / пробуждения (и, вероятно, также в спящем режиме). Кроме того, рекомендуется создать файл 'conf', но для этого есть три формата: один для работы с xorg.conf (которого больше нет), другой для использования с setxkbmap и / etc / default / keyboard (который имеет жалкую документацию и, похоже, не работает в любом случае).

Итак, вот мой файл clerew3.conf для setxkbmap:

Rules = "evdev"
Model = "sun-type-unix-usb"
Layout = "gb"
Symbols = "pc+gb+inet(evdev)+clerew"

Обратите внимание, что 'clerew' - это настраиваемый твик, который хранится в / usr / local / share / X11 / xkb / symbols (я делаю не нравится помещать индивидуальные вещи в / usr). Поэтому я называю это с помощью

$ setxkbmap -I /usr/local/share/X11/xkb -option '' -config .../clerew3.conf -print
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+gb+inet(evdev)+clerew"};
    xkb_geometry  { include "pc(pc104)" };
};

. Выходные данные выглядят хорошо (не считая геометрии, которая может подождать), и если я помещу его в файл clerew.xkb, я могу скомпилировать его в полный файл .xkb файл, который действительно показывает именно то, что я хотел.

Итак, теперь скомпилируем его для использования на Дисплее (который, конечно, равен 0). Итак, вот «официальный» способ сделать это (соблюдайте максимальный набор деталей):

$ setxkbmap -v 10 -I /usr/local/share/X11/xkb -option '' -config /usr/local/share/X11/xorg.conf.d/clerew3.conf
Setting verbose level to 10
locale is C
Found file /usr/local/share/X11/xorg.conf.d/clerew3.conf
After config file:
rules:      evdev
model:      sun-type-unix-usb
layout:     gb
variant:    ,
symbols:    pc+gb+inet(evdev)+clerew
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Warning! Multiple definitions of symbols
         Using config file, ignoring rules file
Applied rules from evdev:
rules:      evdev
model:      sun-type-unix-usb
layout:     gb
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+gb+inet(evdev)+clerew
geometry:   pc(pc104)
Error loading new keyboard description

Так почему же ошибка? Я подозреваю, что у него были проблемы с поиском моего настроенного 'clerew', несмотря на -I ...

Но у меня все еще был файл 'clerew.xkb', скомпилированный ранее с помощью xkbcomp, поэтому я скомпилировал это снова прямо в: 0:

xkbcomp -I/usr/local/share/X11/xkb .../clerew3.xkb :0

и там это было! Все мои ключи работали корректно: Libreoffice, Firefox, Thunderbird и др. Все понимали мои Copy / Cut / Paste и т. Д., Так же как и любые GTK-приложения (с помощью подходящего css-файла). Отлично!

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

Таким образом, остается два вопроса:

  1. Где именно система хранит постоянную карту ключей (предположительно, файл .kvm, хотя я искал такой файл в корневом разделе с помощью команды «найти») , Это в dconf (там есть кое-что о xkb, но я не вижу ничего достаточно большого)? Это в xorg.conf (которого больше нет)? Оно должно быть где-то, потому что оно продолжает воскрешаться, когда я перехожу на сайт или просыпаюсь).
  2. Как заставить его перезаписаться новой версией? Мои исследования нашли много советов, в основном применимых к другим дистрибутивам Linux или более ранним версиям Ubuntu. некоторые предлагают использовать localectl (при недостаточной информации о том, как его использовать); другие бормочут о dpkg-переконфигурировании (но я не верю, что dconf действительно задействован); а некоторые предлагают запустить скрипт (например, мой xkbcomp) в .profile, или .xinitrc, или .config, или в других точках (но я убедился, что .profile не работает).

Помогите!

1
задан 3 July 2019 в 17:56

0 ответов

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

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