Переприсвоение модифицирующих клавиш с xkb

делает у кого-то есть хорошие инструкции для того, как модифицирующие клавиши могут быть изменены в xkb (через размещение измененного xkb файла в/usr/share/X11/xkb).

Объяснить: я могу сделать расположение, которое я хочу в xmodmap. Это - стандартное американское расположение (для ноутбуков), но с модифицирующими клавишами подкачанный раунд (обычный ctrl по сравнению с capslock; высокий звук по сравнению с окнами и т.д., посмотрите ниже). Однако, когда я произвел это расположение с xkbcomp, получающаяся раскладка клавиатуры, кажется, является неполной (и имеет ошибки также): Т.е. перезагрузка и перезагрузка того расположения не являются тем же как работающий xmodmap снова. Не уверенный, почему это - но я считаю, что самое простое могло бы просто писать это с нуля для xkb (вместо того, чтобы идти через xmodmap-> xkb).

Таким образом - у кого-либо есть четкие указания в том, как можно повторно присвоить модифицирующие клавиши в xkb файле? Я в основном хочу взять американское расположение и сделать следующие подкачки:

  • capslock-> hyper
  • (сдвиг)
  • ctrl-> супер
  • (fn)
  • окна-> alt/meta
  • высокий звук-> управление
  • (пространство)
  • altgr-> управление
  • ctrl-> hyper
  • (покинутая стрелка)

В этом списке первая маркировка предназначена, чтобы быть физическим ключом на ноутбуке (идущий против часовой стрелки от capslock к клавишам со стрелками); неизмененные ключи, показанные в (...); вторая маркировка является желаемой функцией.

То, что я хотел бы произвести, является фактическим xkb файлом (т.е. США + те модификаторы), который я могу затем поместить в/usr/share/X11/xkb и ссылку из /usr/share/X11/xkb/rules/evdev.xml, так, чтобы я мог просто подкачать к этому расположению при необходимости.

(Причина, я хочу сделать это в xkb а не в xmodmap, состоит в том, потому что xkb может иметь дело с различными разметками в различных окнах, и я не нашел способ сделать это с xmodmap, который всегда, кажется, широкие системы.)

PS. В xmodmap это было бы:

clear control
clear lock
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5

! 66/CapsLk
! Shift
! 37/Ctrl - Fn - 133/Win - 64/Alt - Space - 108/AltGr - 105/Ctrl

keycode  66 = Hyper_L Hyper_L Hyper_L Hyper_L
keycode  37 = Super_L Super_L Super_L Super_L
keycode 133 = Alt_L Alt_L Alt_L Alt_L
keycode  64 = Control_L Control_L Control_L Control_L
keycode 108 = Control_R Control_R Control_R Control_R
keycode 105 = Hyper_R Hyper_R Hyper_R Hyper_R

add control = Control_L Control_R
add mod1 = Alt_R Alt_L
add mod2 = Num_Lock
add mod3 = Hyper_L Hyper_R
add mod4 = Super_L

Таким образом, как я достигаю того же в xkb?

PPS. Я также смущен Высоким звуком по сравнению с Meta - кто-то мог объяснить значение wrt. xkb? (Или Ubuntu в целом?) Я предположил, что alt=meta (в emacs), но там, кажется, различие.Что это?

Править. Изучив это еще немного, я предполагаю, что мой xkb файл (для входа в/usr/share/X11/xkb/symbols) выглядел бы примерно так:

partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {

    include "us(basic)"
    name[Group1]= "enHT (English, US, Hyper-Terminal)";

    key <CAPS> { [ Hyper_L, Hyper_L ] };
// Map Ctrl to the left Alt key, Alt to the left Win key,
// and Super to the left Ctrl key.
    replace key <LALT> { [ Control_L, Control_L ] };
    replace key <LWIN> { [ Alt_L, Meta_L ] };
    replace key <LCTL> { [ Super_L ] };
    modifier_map Mod1    { <LWIN> };
    modifier_map Mod4    { <LCTL> };
    modifier_map Mod5    { <CAPS> };
    modifier_map Control { <LALT> };

};

Однако инструкции в файле, кажется, не работают (даже относительно общей американской включенной раскладки клавиатуры). Так, вероятно, что-то основное является неправильным.

0
задан 10 November 2019 в 17:48

1 ответ

Ответ предоставлен в Редактировании. раздел выше корректен. Если сохранено к/usr/share/X11/xkb/symbols под somename, setxkbmap somename будет работать правильно. Я описал информацию здесь https://github.com/bjohas/Ubuntu-keyboard-map-like-OS-X и включал контурные карты для xmodmap и xkb.

Вот то, почему мне не было ясно, что карты работали:

Любое понимание по тем последующим вопросам ценилось бы!

0
ответ дан 22 December 2019 в 00:02

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

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