Remapear o mouse e o teclado para um gamepad

7

Desde o Dia das Bruxas, eu tenho gostado muito do Amnésia do Frictional Games no Ubuntu. Meu próximo objetivo é conseguir as outras ofertas que eles têm.

Infelizmente, não há uma configuração de gamepad para este jogo (e muitos outros por aí). Eu sei que há software como rejoystick que permite o mapeamento das teclas do teclado para um gamepad. No entanto, uma vez que este jogo incorpora o mouse, existe uma solução para mapear ambos?

Obrigado antecipadamente.

Atualização: Eu encontrei no playdeb.net QJoypad. Permite o mapeamento do teclado e do mouse. Infelizmente, ainda pareço ter problemas com o mouse ao entrar na Amnesia.

    
por Casey Keller 22.11.2010 / 22:29

4 respostas

3

A solução é QJoyPad. Como afirmei na minha atualização sobre a questão, ele permite o mapeamento do teclado e do mouse.

A amnésia é um pouco excêntrica na configuração porque o jogo usa, de acordo com o fórum movimentos relativos do mouse. A solução é iniciar o jogo através de um terminal depois de digitar export SDL_VIDEO_X11_DGAMOUSE=0 . Depois disso, meu teste com o mouse funcionou bem.

A propósito, o controlador que estou usando com o QJoyPad é uma ação dupla da Logitech.

    
por Casey Keller 26.11.2010 / 06:00
6

Seguindo resposta do Grumbel , tentei xboxdrv solução com o apoio de seu link e especialmente esta página :

1. Instale o xboxdrv 0.8.2 do Ubuntu Software Center.

Instale também uinput e joydev , se necessário. Eu fiz assim sudo modprobe uinput + sudo modprobe joydev

2. Precisa conhecer o evento do gamepad:

Inicie o udevadm monitor --udev e, em seguida, ligue o bloco de jogos:

$ udevadm monitor --udev
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [6722.377700] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1 (usb)
UDEV  [6722.383264] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0 (usb)
UDEV  [6722.383333] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/0003:046D:C218.0003 (hid)
UDEV  [6722.383389] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/0003:046D:C218.0003/hidraw/hidraw1 (hidraw)
UDEV  [6722.387123] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10 (input)
UDEV  [6722.399284] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10/event8 (input)
UDEV  [6722.412128] add      /devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input10/js0 (input)

Concluo que o evento do meu gamepad é / dev / input / event8

3. Exibe nomes de todas as teclas, eixos, botões do gamepad.

A ideia é lançar xboxdrv e testar todos os botões e anotar o resultado no papel.

$ sudo xboxdrv --evdev /dev/input/event8 --evdev-debug
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js1
/dev/input/event9
Press Ctrl-c to quit, use '--silent' to suppress the event output
EV_ABS ABS_X 128
EV_ABS ABS_Y 128
...

No meu caso, o resultado é:

4. Defina o arquivo de configuração

Crie um arquivo xboxdrv-mouse.ini para definir o eixo XY e o botão esquerdo e direito do mouse.
Aqui eu defino os botões gamepad 2 para o botão esquerdo do mouse e 3 para o botão direito do mouse:

[xboxdrv]
evdev=/dev/input/event8
silent=true

[evdev-absmap]
ABS_X=x1
ABS_Y=y1

[ui-axismap]
x1=REL_X:10
y1=REL_Y:-10

[evdev-keymap]
BTN_THUMB=a
BTN_THUMB2=b

[ui-buttonmap]
a=BTN_LEFT
b=BTN_RIGHT

# EOF #

Observe que o valor de REl_X e REL_Y parece definir a velocidade do mouse e, ao definir um valor negativo, inverte o eixo (veja aqui para REL_Y)

Um outro exemplo com mais definição de botão

[xboxdrv]
evdev=/dev/input/event8
silent=true

[evdev-absmap]
ABS_X=x1
ABS_Y=y1
ABS_HAT0X=x2
ABS_HAT0Y=y2

[ui-axismap]
x1=REL_X:10
y1=REL_Y:-10
x2=KEY_LEFT:KEY_RIGHT
y2=KEY_DOWN:KEY_UP

[evdev-keymap]
BTN_TRIGGER=x
BTN_TOP=y
BTN_THUMB=a
BTN_THUMB2=b
BTN_PINKIE=rt
BTN_BASE2=rb
BTN_TOP2=lt
BTN_BASE=lb
BTN_BASE3=back
BTN_BASE4=start

[ui-buttonmap]
x=KEY_KPENTER
y=KEY_SPACE
a=BTN_LEFT
b=BTN_RIGHT
rt=KEY_KP8
rb=KEY_KP2
lt=KEY_KP6
lb=KEY_KP4
back=KEY_LEFTSHIFT
start=KEY_RIGHTCTRL

# EOF #

5. Lançamento

sudo xboxdrv --config xboxdrv-mouse.ini

Para evitar o lançamento com sudo , crie uma regra do udev .

CONCLUSÃO

Funciona bem, é a melhor solução para mim.

    
por Boris 28.10.2012 / 09:03
1

Para mapear um gamepad para mouse, tente js2mouse .

No Ubuntu 11.10, o qjoypad parece não funcionar corretamente, porque um clique no ícone na área de notificação aciona um menu do botão direito do mouse sem nenhuma maneira de acessar a configuração. Você pode, no entanto, usar o Rejoystick (também disponível no PlayDeb). Na primeira vez que você executá-lo (executando rejoystick ) você atribui chaves aos botões do seu gamepad e, em seguida, salve. Em seguida, você executa rejoystick -d e não obtém uma GUI, o rejoystick está sendo executado em segundo plano e usará os botões do seu gamepad para as teclas atribuídas.

    
por titaniumtux 18.12.2011 / 06:28
0

Eu definitivamente recomendaria o AntiMicro , que é retomado de onde parou o QJoyPad descontinuado. Eu estou usando agora para jogar Civ V do meu sofá e estou amando cada minuto disso. Foi fácil de configurar e usar (e sim, permite mapear tanto o teclado quanto o mouse - incluindo a rolagem da roda esquerda / direita).

    
por Waldir Leoncio 21.06.2014 / 11:29