After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 677106 - Enable on-screen-keyboard if no kbd is found
Enable on-screen-keyboard if no kbd is found
Status: RESOLVED DUPLICATE of bug 692771
Product: gnome-settings-daemon
Classification: Core
Component: keyboard
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-settings-daemon-maint
gnome-settings-daemon-maint
3.10 touch
Depends on:
Blocks:
 
 
Reported: 2012-05-30 15:55 UTC by Lennart Poettering
Modified: 2014-08-29 16:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Lennart Poettering 2012-05-30 15:55:00 UTC
It would be good if we'd automatically show an on-screen keyboard if no real keyboard is plugged in but a pointing device/touch screen is. Unless the user explicitly turned off or turned on the on-screen keyboard this should be the automatic logic. Since users can plug in keyboards at any time this logic needs to follow the current hotplug state. Note that the logic that detects whether a keyboard is plugged in should probably ignore input devices such as ACPI buttons, and look for real keyboards only (maybe consider only input devices that have at least the following keys: 'G', 'N', 'O', 'M', 'E'? Sounds much nicer to look for specific keys than to filter by driver name or so).

Moreover, it probably is a good idea to store whether the on-screen keyboard is explicitly enabled/disabled by the user individually for seats. i.e. use the "Xorg_Seat" root window property to find the seat identifier, and then store the user choice for each seat individually. Seat names are stable so that this works correctly.

This is useful for setups where a multitude of different seats are plugged into the same machine. For example a PC with one built-in classic seat of screen, mouse, keyboard, plus one MIMO device which is a seat of a screen and touchscreen (http://www.mimomonitors.com/). On the first seat you want no on-screen keyboard, on the second one you do, and it would be great if this would work automatically, and if the user undoes the change stays that way individually.
Comment 1 Matthias Clasen 2012-09-12 10:56:49 UTC
I think this probably goes to gnome-settings-daemon, who already watches over keyboards coming and going...
Comment 2 Bastien Nocera 2013-02-21 00:03:29 UTC
We have no way of detecting whether there are keyboards present reliably as most devices will show you a "PS/2 keyboard" type interface even if no keyboards are plugged into the system.

But I guess this doesn't mean that we cannot make this work when the hardware is well-behaved.
Comment 3 Lennart Poettering 2013-02-26 20:35:22 UTC
Also, in multi-seat scenarios there might be seats actually really lacking a kbd... For example, if you plug in a MIMO display (as mentioned above) you get a seat with no kbd but with touch device...

Also, most BIOSes are capable of detecting whether there's something connected to the atkbd controller... If the BIOS can do that, Linux could too? Maybe we can hook that up with xinput?
Comment 4 Bastien Nocera 2013-02-27 09:51:32 UTC
(In reply to comment #3)
> Also, in multi-seat scenarios there might be seats actually really lacking a
> kbd... For example, if you plug in a MIMO display (as mentioned above) you get
> a seat with no kbd but with touch device...

In multi-seat env. the split would already be made before, and only the devices pertaining to that seat would appear through xinput.

> Also, most BIOSes are capable of detecting whether there's something connected
> to the atkbd controller... If the BIOS can do that, Linux could too? Maybe we
> can hook that up with xinput?

Sure, the problem being horrible legacy hardware of which there is plenty.

At the end of the day, we only use XInput's view of the available devices.
Comment 5 Bastien Nocera 2014-08-29 16:28:54 UTC
Bug 692771 has the gnome-settings-daemon patches for that.

*** This bug has been marked as a duplicate of bug 692771 ***