У меня есть настройки XKB, так что если я удерживаю caps lock, мои HTNS-ключи (эквивалент qwerty будет JKL;) работают для перемещения мыши.
Теперь я хочу, чтобы мышь перемещалась на меньшее расстояние, если я также удерживаю клавишу Shift. Но я не могу понять это.
Это дает мне основные движения:
interpret Pointer_Left {
repeat= True;
action= MovePtr(x=-100,y=+0);
};
и он перемещается на 100 пикселей независимо от того, удержал ли меня нажатие Shift
Чтобы получить сменное поведение, я пробовал разные вещи. Кажется, это работает точно так же, как и выше:
interpret Pointer_Left {
repeat= True;
action= MovePtr(x=-100,y=+0);
};
interpret Pointer_Left+AnyOf(Shift) {
repeat= True;
action= MovePtr(x=-10,y=+0);
};
Между тем, это полностью отключает поведение, я не могу переместить мышь влево с клавиатурой:
interpret Pointer_Left+NoneOf(Shift) {
repeat= True;
action= MovePtr(x=-100,y=+0);
};
interpret Pointer_Left+AnyOf(Shift) {
repeat= True;
action= MovePtr(x=-10,y=+0);
};
и так (где я полностью удаляю действие -100):
interpret Pointer_Left+AnyOf(Shift) {
repeat= True;
action= MovePtr(x=-10,y=+0);
};
Я также попробовал два определения для привязанного к нему ключа, не замечая никаких изменений в поведении:
key <AC07> {
type= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ h, H, Pointer_Left, Pointer_Left ]
};
а также
key <AC07> {
type= "THREE_LEVEL",
symbols[Group1]= [ h, H, Pointer_Left ]
};
где эти типы определены как
type "THREE_LEVEL" {
modifiers= Shift+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Level3";
};
type "FOUR_LEVEL_SEMIALPHABETIC" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level3;
preserve[Lock+LevelThree]= Lock;
map[Shift+Lock+LevelThree]= Level4;
preserve[Shift+Lock+LevelThree]= Lock;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};