
Logiciel avancé de remappage Wiimote
[!IMPORTANT] Ce logiciel nécessite un pilote de kernel Wiimote mis à jour/corrigé disponible ici.
Après l'installation, exécutez
sudo sed -i '/ATTR{inhibited}="1"/s/^/#/' /etc/udev/rules.d/99-wiimote.rulespour débloquer les événements IR et accéléromètre.
Basé sur le système d'entrée esperto, esperto-wiimote est un mappeur Wiimote avancé. Il propose un calibrage précis de l'accéléromètre,
un bon suivi IR et de puissantes options de remappage, avec prise en charge des combos. Il n'ajoute pratiquement aucune latence, principalement dominée par l'API evdev/uinput du kernel lui-même.
Ce programme inclut un port++ de l'algorithme de suivi IR à 2 points d'Hector Martin, fourni à titre de référence.
Disponible sur crates.io.
Le fichier de configuration est spécifié avec --config <FILE>. S'il n'est pas spécifié,
le programme chargera une configuration par défaut de télécommande multimédia intégrée, disponible dans src/default.yaml.
Voici un exemple de configuration avec des descriptions :
# Whether to grab the devices, so other software won't use them
grab: false
# Command to run when the first Wiimote connects, as list of arguments
# Useful for automation like powering on the sensor bar
on_connect: [ "echo", "hello", "world" ]
# Command to run when thelast Wiimote disconnected, as list of arguments
# Useful for automation like powering off the sensor bar
on_disconnect: [ "echo", "goodbye", "world" ]
# Options for the output device slot. For each Wiimote there are four available slots, from `slot1` to `slot4`.
# Slots are useful to isolate mouse/keyboard/joysticks inputs
slots:
slot1:
# Name of the wirtual device
name: "Esperto Wiimote mouse"
slot2:
name: "Esperto Wiimote keyboard"
# Whether the device should autorepeat held keys, this might get overruled by the compositor
repeating: true
# Accelerometer calibration data generated with the `esperto-wiimote calibration` command
accelerometer_calibration: [
1.0014056, -0.011690015, 0.009826779,
-0.02909683, 1.013545, 0.005751312,
-0.010004735, -0.012316463, 0.99458194,
28.481918, 33.827446, 30.468597 ]
# Margins of the mapped area. True margins are 0-4095 (regardless of screen resolution), but you will
# want to exceed those to account for the aspect ratio, and the IR sensor not reaching all the way to the margins.
# The same scaling will be applied to all axes
screen_limits:
north: -2000
south: 6569
west: -300
east: 4395
# Center an axis when it gets enabled
centering:
# Axes can be specified by name...
!Axis ABS_X: 2048
# Or by their real integer id
!CustomAxis 1: 2048
# Park an axis when it gets disabled
parking:
!CustomAxis 0: 4095
!Axis ABS_Y: 4095
# The physical dimensions of your sensorbar
sensor_bar:
width: 19.5
cluster_width: 4.5
cluster_height: 1.0
pixel_width: 256.0
# The smoothing parameters can be tuned
smoothing:
radius: 30.0
speed: 0.15
deadzone: 8.0
# esperto combos configuration, check https://github.com/KayJay7/esperto for more information
esperto:
modifiers:
- name: pointer
keys: [ B ]
actions:
- key: A
action:
# Actions must specify their output slot
slot: Slot2
# Keys can be specified by name...
code: !Key KEY_SPACE
modified:
- modifier: pointer
action:
slot: Slot1
# Or by their integer id
code: !CustomKey 0x110
La liste complète des touches Wiimote disponibles est :
ABUpDownLeftRightPlusMinusHomeBtn1Btn2Et des axes :
IRAbsXIRAbsYLa liste complète des codes de sortie disponibles se trouve ici. Si un nom de scancode n'est pas reconnu, l'identifiant numérique fonctionnera quand même.
Un assistant de calibrage de l'accéléromètre peut être lancé en exécutant esperto-wiimote calibration.
Vous devrez placer la Wiimote sur ses 6 côtés comme demandé, et attendre que l'outil rassemble suffisamment de mesures. Le résultat sera ajouté au fichier de configuration (s'il est fourni), sinon affiché à l'écran. Certaines options avancées peuvent être fournies en arguments si nécessaire.
Nous vous encourageons vivement à calibrer votre Wiimote avant d'utiliser ce programme, sinon l'accéléromètre pourrait être assez peu fiable. Il est préférable de calibrer une fois que la télécommande a atteint sa température de fonctionnement normale. N'oubliez pas que les lectures du capteur dériveront légèrement avec le temps et les changements de température, mais un recalibrage ne sera probablement pas nécessaire, car le logiciel compense la dérive.