char *_udev_monitor_event_source = NULL;
int _udev_monitor_buffer_size = 0;
+int _udev_monitor_skip_unconfigured_device = 1; //default : skip
static char *
_udev_get_udev_monitor_event_source(void)
/* Skip unconfigured device. udev will send an event
* when device is fully configured */
if (!udev_device_get_is_initialized(device)) {
- log_debug(&input->base,
- "%-7s - skip unconfigured input device '%s'\n",
- sysname,
- udev_device_get_devnode(device));
- udev_device_unref(device);
- continue;
+ /* Skip only when the skip flag has been set to non-zero. */
+ if (_udev_monitor_skip_unconfigured_device) {
+ log_debug(&input->base,
+ "%-7s - skip unconfigured input device '%s'\n",
+ sysname,
+ udev_device_get_devnode(device));
+ udev_device_unref(device);
+ continue;
+ }
}
if (device_added(device, input, NULL) < 0) {
log_info(libinput, "udev: event source is udev (default event source).\n");
}
+ /* Skip only when the event source of udev monitor has been set as "udev" or null. */
+ if (!env || (0 == strncmp("udev", env, 4))) {
+ _udev_monitor_skip_unconfigured_device = 1;
+ log_info(libinput, "will skip addition of unconfigured devices. (env=%s)\n", env ? env : "null");
+ }
+ else {
+ _udev_monitor_skip_unconfigured_device = 0;
+ log_info(libinput, "won't skip addition of unconfigured devices. (env=%s)\n", env);
+ }
+
if (!input->udev_monitor) {
log_info(libinput,
"udev: failed to create the udev monitor\n");
}
input->udev = udev_ref(udev);
- _udev_monitor_event_source = strdup("udev");
+ if (!_udev_monitor_event_source)
+ _udev_monitor_event_source = strdup("udev");
return &input->base;
}