pop-os / cosmic-comp

Compositor for the COSMIC desktop environment
GNU General Public License v3.0
465 stars 82 forks source link

Shortcuts with Letter Keys don't work when non Latin based keyboard layout is active #642

Open quendimax opened 1 month ago

quendimax commented 1 month ago

Shortcuts with letter keys (e.g. Super+Q, Super+T) don't work when you use a non Latin based keyboard layout.

I suppose, it is caused by using Unicode instead of Keycode of pressed keys. Actually it is common issue of some rust GUI libraries (at least slint, iced, and perhaps gpui).

If my guess is true, it means that even with some Latin based keyboard layouts, some shortcuts can be activated with different key combinations (for example French AZERTY layout).

Drakulix commented 1 month ago

Hmm the matching is done through libxkbcommon which should gracefully handle non-latin keyboards and is used by other desktops as well.

That said we do currently convert back from text-descriptions of the keys to a keysym, instead of a keycode. (which I am also not entirely sure is possible in that direction.)

We should be saving keycode obviously, but making those configurable through the UI, requires functionality, where cosmic-settings can capture the keycode entered by a user, so we only have to convert from codes to text descriptions and never vise-versa.

That however will probably not happen for the first alpha release, as it requires more integration with the compositor (possibly through some additional protocol).