Eu tenho minha configuração do XKB para que, se eu mantiver o caps lock, minhas teclas HTNS (o equivalente qwerty seria JKL;) funcionem para mover o mouse.
O que eu quero agora é que o mouse percorra menos distância se eu também estiver pressionando Shift. Mas eu não consigo entender isso.
Isso me dá movimento básico:
interpret Pointer_Left {
repeat= True;
action= MovePtr(x=-100,y=+0);
};
e ele move 100 pixels se eu tiver pressionado o shift ou não.
Para obter o comportamento de mudança, tentei várias coisas. Isto parece funcionar exatamente da mesma forma que o acima:
interpret Pointer_Left {
repeat= True;
action= MovePtr(x=-100,y=+0);
};
interpret Pointer_Left+AnyOf(Shift) {
repeat= True;
action= MovePtr(x=-10,y=+0);
};
Enquanto isso, isso desativa completamente o comportamento, não consigo mover o mouse para a esquerda com o teclado:
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);
};
e isso também (onde eu removo totalmente a ação -100):
interpret Pointer_Left+AnyOf(Shift) {
repeat= True;
action= MovePtr(x=-10,y=+0);
};
Eu também tentei duas definições para a chave vinculada a ele sem perceber qualquer mudança de comportamento:
key <AC07> {
type= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ h, H, Pointer_Left, Pointer_Left ]
};
e
key <AC07> {
type= "THREE_LEVEL",
symbols[Group1]= [ h, H, Pointer_Left ]
};
onde esses tipos são definidos como
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";
};