O xboxdrv pode fazer isso, mas somente quando o controlador PS3 estiver conectado via USB:
Quanto aos ids, eu os listei abaixo, mas eles não vão te ajudar muito. Como você pode ver, Xbox360 USB e Xbox360 Wireless usam diferentes e a maioria dos jogos não se importa, eles usam o botão um após o outro e não se importam com qual botão está mapeado para qual botão físico você precisa remapear manualmente em cada jogo.
Quanto ao Wine, o Wine suporta apenas o DirectInput e não possui suporte ao Xinput, e muitos jogos modernos exigem Xinput. Para contornar isso você tem que usar uma emulação Xinput .dll (mesmo truque você tem que usar no Windows com gamepads mais antigos), não tentei por mim mesmo, mas é descrito aqui:
-
USB Xbox360 Controller
======================
start BTN_START
guide BTN_MODE
back BTN_SELECT
a BTN_A
b BTN_B
x BTN_X
y BTN_Y
lb BTN_TL
rb BTN_TR
tl BTN_THUMBL
tr BTN_THUMBR
x1 ABS_X:-32768:32767:16:128
y1 ABS_Y:-32768:32767:16:128
x2 ABS_RX:-32768:32767:16:128
y2 ABS_RY:-32768:32767:16:128
lt ABS_Z:0:255:0:0
rt ABS_RZ:0:255:0:0
dpad_x ABS_HAT0X:-1:1:0:0
dpad_y ABS_HAT0Y:-1:1:0:0
Wireless Xbox360 Controller
======================
dpad_up BTN_0
dpad_down BTN_1
dpad_left BTN_LEFT
dpad_right BTN_RIGHT
start BTN_START
guide BTN_MODE
back BTN_SELECT
a BTN_A
b BTN_B
x BTN_X
y BTN_Y
lb BTN_TL
rb BTN_TR
tl BTN_THUMBL
tr BTN_THUMBR
x1 ABS_X:-32768:32767:0:0
y1 ABS_Y:-32768:32767:0:0
x2 ABS_RX:-32768:32767:0:0
y2 ABS_RY:-32768:32767:0:0
lt ABS_Z:0:255:0:0
rt ABS_RZ:0:255:0:0