diff options
author | Ray Strode <halfline@gmail.com> | 2022-12-01 15:35:52 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2022-12-01 15:35:52 +0000 |
commit | e8b301a66df2e5b713d9379997249e66d1f3cda8 (patch) | |
tree | db4fb6813af21f8a64fa089081771b8fda4b2861 | |
parent | a3f9824d9a3f894eae4f7b9dd720fc3c1eb11ecc (diff) | |
parent | f6852a7a82a4226f2738da5fdbaf81cd80039443 (diff) |
Merge branch 'dont-assume-qwerty-us-layout' into 'main'
device-manager: Fall back to reading from tty if no xkb layout specified
Closes #199
See merge request plymouth/plymouth!218
-rw-r--r-- | src/libply-splash-core/ply-device-manager.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c index ca2af770..03fa0f30 100644 --- a/src/libply-splash-core/ply-device-manager.c +++ b/src/libply-splash-core/ply-device-manager.c @@ -413,6 +413,9 @@ create_devices_for_udev_device (ply_device_manager_t *manager, } else if (strcmp (subsystem, SUBSYSTEM_INPUT) == 0) { if (ply_string_has_prefix (device_sysname, "event")) { ply_trace ("found input device %s", device_path); + + assert (manager->xkb_keymap != NULL); + ply_input_device_t *input_device = ply_input_device_open (manager->xkb_context, manager->xkb_keymap, device_path); if (input_device != NULL) { ply_input_device_set_disconnect_handler (input_device, (ply_input_device_disconnect_handler_t) remove_input_device_from_renderers, manager); @@ -673,7 +676,7 @@ watch_for_udev_events (ply_device_manager_t *manager) udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_DRM, NULL); udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_FRAME_BUFFER, NULL); - if (!ply_kernel_command_line_has_argument ("plymouth.use-legacy-input")) + if (!ply_kernel_command_line_has_argument ("plymouth.use-legacy-input") && manager->xkb_keymap != NULL) udev_monitor_filter_add_match_subsystem_devtype (manager->udev_monitor, SUBSYSTEM_INPUT, NULL); udev_monitor_enable_receiving (manager->udev_monitor); } @@ -844,9 +847,6 @@ parse_vconsole_conf (ply_device_manager_t *manager) if (manager->xkb_keymap == NULL) { ply_trace ("Failed to set xkb keymap of LAYOUT: %s MODEL: %s VARIANT: %s OPTIONS: %s", xkb_layout, xkb_model, xkb_variant, xkb_options); - - manager->xkb_keymap = xkb_keymap_new_from_names (manager->xkb_context, NULL, XKB_MAP_COMPILE_NO_FLAGS); - assert (manager->xkb_keymap != NULL); } free (xkb_layout); |