Remapear botões no dispositivo secundário

3

Eu tenho visto várias discussões semelhantes a este problema, mas ainda não consegui fazer isso funcionar.

Eu recentemente quebrei meu dedo mindinho esquerdo muito mal. Eu tenho o Fragpedal Quad e estou tentando remapear os pedais para coisas como controle e alt e tab.

O dispositivo se comporta como um mouse - por padrão, os pedais são mapeados para rolar para cima, para baixo, clique direito e clique esquerdo. Quando eu executo o xinput, recebo o seguinte:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Good Work Systems, Inc. GWS IDI Device    id=9    [slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                  id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Good Work Systems, Inc. GWS IDI Device    id=10   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=12   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=13   [slave  keyboard (3)]

Os pedais são o dispositivo "Good Work Systems".

O mais perto que cheguei de fazer isso se comportar como eu queria era criar e editar uma configuração de .xbkeys como tal:

# Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Mas isso também afeta meus botões normais do mouse. Como especifico um mapeamento de teclado por dispositivo?

    
por sixtimes 16.10.2014 / 01:36

2 respostas

2

Mapeie os botões do mouse do seu dispositivo para os botões do mouse não usados e, em seguida, use seus xbindkeys para se referir a eles.

  1. Use xinput list para encontrar o ID do seu dispositivo.
  2. Use xinput set-button-map para remapear os botões para outros botões do mouse. Por exemplo, se xinput list indicar que o ID do seu dispositivo é 15 e o dispositivo tiver quatro botões, faça xinput set-button-map 15 10 11 12 13 . Agora você definiu os cliques do mouse do dispositivo 15 como b: 10, b: 11, b: 12 e b: 13.
  3. Atualize seu .xbindkeysrc para remapear esses botões para os atalhos desejados.
por old_warbaker 23.10.2015 / 22:13
0

Eu sei que ele tem 2 anos de idade e já respondeu, mas para referência futura, você pode especificar o ID do dispositivo na sua chamada para xte .

# Copy
"xte -i 9 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte -i 9 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte -i 9 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte -i 9 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Isso deve limitar a alteração ao único dispositivo identificado pelo ID fornecido como -i . Como esses IDs podem ser mapeados de maneira diferente em cada inicialização, convém scriptificar a alteração para que você possa executá-la manualmente.

( veja também link )

    
por zerobandwidth 04.12.2017 / 14:43