Как настроить раскладки клавиатуры с Wayland

20

Я использую Linux на Macbook с клавиатурой UK / GB и настраиваю раскладку клавиатуры, чтобы решить некоторые проблемы, которые вызывает странная раскладка клавиатуры Apple. Я использую, xmodmapчтобы сделать это. Я хотел бы попробовать Wayland, но xmodmapне работает в этом. Как я могу достичь аналогичного результата в Wayland? .XmodmapИспользование файла I содержит следующее:

keycode  12 = 3 numbersign 3 sterling sterling sterling threesuperior sterling
clear Control
clear Mod4
add Control = Control_L Super_R
add Mod4 = Super_L
keysym Caps_Lock = NoSymbol Caps_Lock

Строка 1: на британских клавиатурах Shift- 3это £, поэтому у # обычно есть свой собственный ключ рядом Return. Но на Mac # получается с Altgr- 3. Как программист я использую # гораздо больше, чем £, поэтому эта строка меняет их. Выбор раскладки США также позволяет добиться этого, но при этом в Linux также меняются некоторые другие часто используемые ключи, тогда как в OS X эти другие ключи не зависят от США / Великобритании.

Строки 2-5: заставить правую Cmdклавишу действовать как правую Ctrl, потому что эта клавиатура не имеет физической правой Ctrlклавиши.

Строка 6: CapsLockработает только при нажатии Shift. Не для Mac, это должно быть стандартным вариантом для всех ОС и клавиатур.

realh
источник
Я на полпути: очевидно, Wayland использует xkb, а xmodmap в X все равно не рекомендуется. К сожалению, xkb значительно сложнее, и GNOME никогда не считал, что пользователям может понадобиться настроить его, поэтому я поднял второй вопрос .
Реал

Ответы:

11

К сожалению, изменение базы данных системы XKB /usr/share/X11/xkbявляется единственным способом; из вашего другого вопроса похоже, что вы получили эту часть работы.

Ограничение в основном связано с незрелостью Wayland и недостатком дизайна в XKB.

  • Такие инструменты, как setxkbmapи xkbcompпредоставляют -Iвозможность добавить пользовательскую базу данных для поиска (например, ~/.xkbили ~/.config/xkbс файлами и подкаталогами, расположенными как база данных системы). Эти инструменты взаимодействуют с X-сервером, поэтому они могут быть полезны при настройке уровня Xwaylandсовместимости для запуска X-приложений под Wayland. Но они в настоящее время не говорят о Вейландских протоколах.

  • Вейландские протоколы все еще созревают. В настоящее время это кажется input-methodи text-inputпротоколы являются наиболее актуальными, и оба являются нестабильными. Не упоминайте ничего об изменении определенной таблицы ключей; эти детали оставлены на усмотрение композитора.

  • GNOME и KDE предоставляют демоны настроек обработки клавиатуры, которые должны обрабатывать системные параметры XKB, включая изменение на лету. Насколько мне известно, нет никакого способа рассказать о пользовательских настройках. Насколько я знаю, Weston и другие композиторы полагаются на конфигурационные файлы или переменные окружения для установки параметров XKB при запуске и не предоставляют никаких способов их изменения, кроме выхода и перезапуска.

  • Даже в самом XKB это не полностью поддерживается. Ваш файл пользовательских символов может содержать includeдругие файлы системных символов. Но в настоящее время нет никакой includeфункциональности для файлов правил XKB, поэтому, даже если у вас есть инструмент, который будет взаимодействовать с композитором Wayland и искать ваши личные настройки, вам придется вручную включить все правила, которые вы хотите использовать (например, копировать rules/evdev*из системы XKB и модифицируйте ее). libxkbcommonесть открытая проблема на эту тему и связанная ошибка .

донкихотский
источник
1
Я должен был прояснить, что я в значительной степени решил это сейчас. Я сказал так в другом вопросе, но информация немного разрознена. Я намерен более четко задокументировать это, когда найду возможность добавить блог на свой веб-сайт, тогда мне придется вспомнить ссылку на него здесь.
17
конечно, но это все еще оставался без ответа вопрос, поэтому я попытался обратиться к Wayland-эквиваленту .Xmodmapаспекта.
донкихотский
3
Теперь я подробно описал это в своем блоге .
Realh
5

Я успешно использовал Interception Tools для Linux и знаю людей, которые также производят другие плагины для своих пользовательских отображений . caps2esc - это первый плагин для проверки концепции, который я использую каждый день и работает как на X, так и на Wayland. Инструмент немного более низкого уровня, чем обычное картографическое программное обеспечение, но довольно гибкий, и мой план следующего плагина - это обобщенный инструмент картографирования.

Отказ от ответственности: я автор.

pepper_chico
источник
Инструменты перехвата выглядят действительно интересно! Спасибо за вашу работу!
Бал
1
Не уверен, что я чувствую, когда запускаю весь ввод с клавиатуры через скрипт на Python
Ace.C
4

Для тех, кто приедет сюда в 2018 году (Ubuntu 17.10), наиболее важная часть этого может быть выполнена с помощью GNOME Tweak Tool.

Gnome Tweak Tool> Клавиатура и мышь> Дополнительные параметры макета> Ctrl отображается на клавиши Win (и обычные клавиши Ctrl).

Барди Харбороу
источник
2
Устанавливает ли использование «Gnome Tweak Tool» (что бы это ни было) новые сопоставления для других оконных менеджеров / сред / графических оболочек?
Мали Реморкер
Gnome Tweak Tool не может переназначить Caps Lock.
Энди
@andyn my gnome-tweaks-3.34.0-1.fc31.noarchможет переназначить Caps Lock - например, «Caps Lock - это также Ctrl», «Сделать Caps Lock дополнительным Esc», «Caps Lock as Ctrl» и многие другие.
maxschlepzig
2

Этот ответ имеет ту же идею, что и ответ quickotic, но только с более подробным примером:

В Gnome Tweaks есть список из 20 или 30 настроек клавиатуры, которые вы можете выполнить через xkb. Иногда вы можете найти нужный твик по умолчанию. В моем случае я хотел поменять экранную клавишу с меню.

Единственный вариант изменить ключ printscr, доступный через xkb, - заменить его Win_R. Гуннар Хьялмарссон в этой теме предложил мне изменить модификации xkb, чтобы вместо них printscr / win_r выполнял printscr / menu. Мы вместе разработали решение, и я собираюсь повторить его здесь:

В терминале введите:

sudo su
nano /usr/share/X11/xkb/symbols/altwin

В нижней части файла вы найдете:

// Win is mapped to the PrtSc key (and the usual Win key).
partial modifier_keys
xkb_symbols "prtsc_rwin" {
    replace key <PRSC> { [ Super_R, Super_R ] };
    modifier_map Mod4 { <PRSC>, <RWIN> };
};

Удалите этот раздел и замените его следующим:

// Menu is mapped to the PrtSc key (and the usual Win key).
xkb_symbols "prtsc_rwin" {
     replace key <PRSC> { [ Menu, Menu ] };
     modifier_map Mod4 { <PRSC>, <MENU> };
};

Для удаления в nano используйте клавишу возврата (выделение и удаление не работает). Чтобы вставить, используйте shift-ctrl-v. Чтобы выйти и сохранить, нажмите Ctrl-X, выберите «Да» для перезаписи и нажмите «Ввод».

Перезагружать. В Gnome / Ubuntu Перейти к gnome-tweak-tools. В инструментах настройки перейдите в раздел «Клавиатура и мышь», нажмите кнопку «Дополнительные параметры макета» и раскройте поведение клавиш Alt / Win. Выбор опции в самом низу: Win сопоставлен с printscr (помните, что мы изменили только это поведение, чтобы поменять местами print и Menu вместо print и Win). (Я уверен, что есть способ включить опцию modk xkb в KDE, но я не использую ее, поэтому не могу дать вам точную процедуру).

thebunnyrules
источник