Fazer mousekeys mover velocidades diferentes dependendo dos modificadores

0

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";
};
    
por philh 14.05.2018 / 10:44

0 respostas

Tags