Antimicro (mencionado em outra resposta) parece promissor, mas pessoalmente consegui resultados decentes com xboxdrv (refúgio Não encontrei uma maneira de fazer com que os sticks analógicos funcionassem, mas tudo o resto funciona muito bem. A seguinte configuração de exemplo mapeará vários botões do teclado para o conjunto de botões do controlador Xbox (assumindo que /dev/input/event0
corresponde ao teclado da sua máquina):
# xboxdrv --evdev-no-grab --dpad-only --device-name="Virtual XPAD" --no-extra-devices --no-extra-events --trigger-as-button --dpad-as-button --evdev-keymap "KEY_RIGHT=b,KEY_LEFT=x,KEY_DOWN=a,KEY_UP=y,KEY_LEFTBRACE=lb,KEY_RIGHTBRACE=rb,KEY_SEMICOLON=start,KEY_APOSTROPHE=back" --evdev="/dev/input/event0"
Tanto o xboxdrv quanto o antimicro usam a estrutura uinput
de baixo nível (mais tarde precisa de um switch de configuração para ativá-lo), então eles são compatíveis com o Wine e a maioria dos outros aplicativos Linux, mesmo Wayland.