enum evdev_device_udev_tags udev_tags;
unsigned int tablet_tags;
struct evdev_dispatch *dispatch;
+ char *env;
udev_tags = evdev_device_get_udev_tags(device, device->udev_device);
evdev_disable_accelerometer_axes(device);
}
- if (evdev_device_is_joystick_or_gamepad(device)) {
- evdev_log_info(device,
- "device is a joystick or a gamepad, ignoring\n");
- return NULL;
+ if (udev_tags & EVDEV_UDEV_TAG_JOYSTICK) {
+ env = getenv("LIBINPUT_IGNORE_JOYSTICK");
+ if (env && atoi(env) == 1) {
+ evdev_log_info(device,
+ "device '%s', %s have joystick, ignoring\n",
+ device->devname, devnode);
+ return NULL;
+ }
+ else {
+ if (evdev_device_is_joystick_or_gamepad(device)) {
+ evdev_log_info(device,
+ "device '%s', %s is a joystick, ignoring\n",
+ device->devname, devnode);
+ return NULL;
+ }
+ }
}
if (evdev_reject_device(device)) {