делает у кого-то есть хорошие инструкции для того, как модифицирующие клавиши могут быть изменены в xkb (через размещение измененного xkb файла в/usr/share/X11/xkb).
Объяснить: я могу сделать расположение, которое я хочу в xmodmap. Это - стандартное американское расположение (для ноутбуков), но с модифицирующими клавишами подкачанный раунд (обычный ctrl по сравнению с capslock; высокий звук по сравнению с окнами и т.д., посмотрите ниже). Однако, когда я произвел это расположение с xkbcomp, получающаяся раскладка клавиатуры, кажется, является неполной (и имеет ошибки также): Т.е. перезагрузка и перезагрузка того расположения не являются тем же как работающий xmodmap снова. Не уверенный, почему это - но я считаю, что самое простое могло бы просто писать это с нуля для xkb (вместо того, чтобы идти через xmodmap-> xkb).
Таким образом - у кого-либо есть четкие указания в том, как можно повторно присвоить модифицирующие клавиши в xkb файле? Я в основном хочу взять американское расположение и сделать следующие подкачки:
В этом списке первая маркировка предназначена, чтобы быть физическим ключом на ноутбуке (идущий против часовой стрелки от 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> };
};
Однако инструкции в файле, кажется, не работают (даже относительно общей американской включенной раскладки клавиатуры). Так, вероятно, что-то основное является неправильным.
Ответ предоставлен в Редактировании. раздел выше корректен. Если сохранено к/usr/share/X11/xkb/symbols под somename, setxkbmap somename будет работать правильно. Я описал информацию здесь https://github.com/bjohas/Ubuntu-keyboard-map-like-OS-X и включал контурные карты для xmodmap и xkb.
Вот то, почему мне не было ясно, что карты работали:
Любое понимание по тем последующим вопросам ценилось бы!