Як налаштувати відображення клавіатури за допомогою Wayland


20

Я використовую Linux на Macbook із клавіатурою Великобританії / ГБ і налаштовую карту клавіш, щоб вирішити деякі проблеми, які викликає дивна розкладка клавіатури Apple. Я використовую xmodmapдля цього. Я хотів би спробувати Wayland, але в цьому xmodmapне працює. Як я можу досягти подібного результату в Wayland? Використовуваний .Xmodmapмною файл містить:

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, це має бути стандартним варіантом для всіх ОС та клавіатур.


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

Відповіді:


11

На жаль, модифікація системної бази XKB /usr/share/X11/xkbє єдиним способом; з вашого іншого питання, схоже, ви вже працювали над цією частиною.

Обмеження здебільшого пояснюється незрілістю Wayland та наглядом дизайну в XKB.

  • Інструменти на кшталт setxkbmapі xkbcompнадають -Iможливість додати визначену користувачем базу даних для пошуку (наприклад, ~/.xkbабо ~/.config/xkbз файлами та підкаталогами, викладеними як системна база даних). Ці інструменти взаємодіють із сервером X, тому вони можуть бути корисними для налаштування рівня Xwaylandсумісності для запуску X-програм у Wayland. Але в даний час вони не говорять про протоколи Wayland.

  • Протоколи Wayland досі дозрівають. В даний час здається, що input-methodі text-inputпротоколи є найбільш актуальними, і обидва нестабільні. Ні про що не згадуйте про зміну визначеної ключової карти; ці деталі залишаються композитору.

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

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


1
Я мав би дати зрозуміти, що зараз я досить багато вирішив. Я сказав це в іншому запитанні, але інформація трохи непересічна. Я маю намір це чіткіше документувати, коли обійдуся додаванням блогу на свій веб-сайт, тоді мені доведеться пам’ятати, щоб посилатися на нього тут.
realh

Звичайно, але це все ще було без відповіді, тому я спробував розглянути питання про еквівалент Wayland-еквіваленту .Xmodmap.
кіхотично

3
Зараз я це детально задокументував у публікації в блозі .
realh

5

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

Відмова: Я автор.


Інструменти перехоплення виглядають дуже цікаво! Дякуємо за вашу роботу!
balu

1
Не впевнений, як я відчуваю, що я
працюю

4

Для тих, хто приїде сюди у 2018 році (Ubuntu 17.10), найкритичніша частина цього може бути виконана за допомогою інструменту налаштування GNOME.

Інструмент налаштування Gnome> Клавіатура та миша> Додаткові параметри макета> Ctrl відображається на клавіші Win (та звичайні клавіші Ctrl).


2
Чи використовує "Інструмент налаштування Gnome Tweak" (що б там не було) встановлює нові відображення для інших менеджерів Windows / середовищ / графічних оболонок?
Малі Реморкер

Інструмент налаштування Gnome не може перезавантажити Caps Lock.
Андін

@andyn my gnome-tweaks-3.34.0-1.fc31.noarchcan remap Caps Lock - наприклад, "Caps Lock - це також Ctrl", "Make Caps Lock додатковий Esc", "Caps Lock as Ctrl" та багато іншого.
maxschlepzig

2

Ця відповідь має таку ж ідею, що і відповідь Кікотика, але лише з більш детальним прикладом:

Gnome Tweaks містить список з 20 або 30 налаштувань клавіатури, які ви можете зробити через xkb. Колись ви можете знайти налаштування, яке шукаєте за замовчуванням. У моєму випадку я хотів поміняти клавішу друкованого екрана на Меню.

Єдиним варіантом зміни ключа printscr, доступного через xkb, було замінити його на Win_R. Gunnar Hjalmarsson в цій темі запропонував мені змінити модифікації xkb, щоб замість цього printscr / win_r зробив printscr / меню. Ми розробили рішення разом, і я збираюся його повторно передати тут:

У терміналі введіть:

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> };
};

Щоб видалити нано, використовуйте клавішу зворотного простору (виділення та видалення не працює). Щоб вставити, використовуйте shift-ctrl-v. Для виходу та збереження натисніть ctrl-x, виберіть так, щоб перезаписати, і натисніть клавішу Enter.

Перезавантажте. У Gnome / Ubuntu Перейдіть до інструментів gnome-tweak-Інструменти для налаштування перейдіть до розділу Клавіатура та миша, натисніть кнопку Додаткові параметри макета та розгорніть поведінку клавіш Alt / Win. Вибір опції в самому низу: Win відображається на printscr (пам’ятайте, що ми змінили саме цю поведінку для заміни друку та меню замість print та Win). (Я впевнений, що у KDE є спосіб включення модифікованого параметра xkb, але я не використовую його, тому не можу дати точну процедуру).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.