xkb mapping of R_Control+Arrows

Есть ноутбук с клавишами со стрелками и Fn + стрелки для PageUp/PageDown/Home/End. Хотите сделать эти клавиши такими, чтобы правый элемент управления менял их на:

  • RCtrl + Вверх -> Страница Вверх
  • RCtrl + Вниз -> Страница Вниз
  • RCtrl + Влево -. > Ctrl + Page Up
  • RCtrl + Right -> Ctrl + Page Down

Управление Left должно продолжать работать как прежде.

XKB, который близок к работе:

Следующее содержимое сохранено в /usr/share/X11/xkb/symbols/custom и загружено этой командой setxkbmap -symbols "pc+us+inet(evdev)+custom":

key <UP> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Up, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGUP>, clearMods=Control)] };  
key <DOWN> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Down, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGDN>, clearMods=Control)] };  
key <LEFT> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]=  [ Left, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGUP>)] };  
key <RGHT> {   
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Right, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGDN>)] };

Проблема:

К сожалению, приведенный выше скрипт перехватывает обе клавиши Control, а не только правую. Мне нужно, чтобы левая клавиша Control не меняла своего поведения. Изменение PC_CONTROL_LEVEL2 -> PC_RCONTROL_LEVEL2 вроде бы должно сработать, но в этом случае ничего не работает по-другому (как будто я не делал никаких изменений).

Есть идеи, почему PC_RCONTROL_LEVEL2 ничего не делает?

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

В настоящее время я использую Ubuntu 17.10 с интерфейсом GNOME по умолчанию. Спасибо!

3
задан 10 March 2018 в 03:16

1 ответ

Вам необходимо добавить оболочку функции следующим образом.

default  partial alphanumeric_keys modifier_keys
xkb_symbols "custom" {

key <UP> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Up, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGUP>, clearMods=Control)] };  
key <DOWN> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Down, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGDN>, clearMods=Control)] };  
key <LEFT> {  
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]=  [ Left, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGUP>)] };  
key <RGHT> {   
    type= "PC_CONTROL_LEVEL2",  
    symbols[Group1]= [ Right, NoSymbol ],  
    actions[Group1] = [NoAction(), RedirectKey(key=<PGDN>)] };
};
0
ответ дан 14 March 2020 в 19:10

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

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