Opened 6 months ago
Closed 5 months ago
#13958 closed defect (fixed)
BACKENDS: On-screen keyboard (squeekboard) on mobile linux doesn't work
|Reported by:||chri2||Owned by:||chri2|
On the Librem5 (arm64, imx8) running PureOS (a Debian derivate without any non-GPL software) and Phoc/Phosh scummvm runs fine and Monkey Island is well playable.
But keypresses using the on-screen keyboard [squeekboard https://developer.puri.sm/Librem5/Software_Reference/Environments/Phosh/Squeekboard.html] are not recognized by scummvm making it impossible without external attached keyboard (e.g. bluetooth) to save a game or change the speed or - in general - interact with the scummvm gui.
Tested on 2.2.0 debian package and flatpak 2.6.1.
Change History (5)
comment:1 by , 6 months ago
comment:2 by , 6 months ago
On-screen keyboard is working with SDL 2.26.1.
I had to install libasound2-dev libpulse-dev before compiling SDL 2.26.1 on my Librem5.
If scummvm is started with
the key-presses made on the squeekboard on-screen keyboard are recognized.
follow-up: 5 comment:3 by , 6 months ago
|Game:||Monkey Island 1|
|Priority:||blocker → normal|
Hi, thanks for the report.
So you managed to solve the problem? Anyway, if the issue is caused by squeekboard and the old version of sdl which comes with pureOS, it is not a ScummVM bug.
I suppose not only ScummVM is affected, so maybe it would be better to indicate the issue on the pureOS wiki/bugtracker ? (or whatever is available)
comment:4 by , 6 months ago
|Summary:||on-screen keyboard (squeekboard) on mobile linux doesn't work → BACKENDS: On-screen keyboard (squeekboard) on mobile linux doesn't work|
comment:5 by , 5 months ago
|Status:||new → closed|
Replying to tag2015:
So you managed to solve the problem?
Yes. I wrote down how to get scummvm working under Mobian on the Pinephone and PureOS on the Librem5 in case someone is running into the same issue until the distros updates SDL: https://chrichri.ween.de/articles/9123ba8/monkeyisland-on-librem5-and-pinephone
This ticket can be closed.
@sebastian.krzyszkowiak:talk.puri.sm - one of the developers of squeekboard remarks on the Librem5 matrix channel:
"SDL versions older than 2.26 have broken keymap handling. text input API works as that doesn't go through keymaps, but any keysyms are garbled since squeekboard generates arbitrary keymaps
keys like ESC, F1 etc. won't work on older SDL with squeekboard - if they do, it's pure luck ;)"
"squeekboard uses two distinct protocols to send events depending on which key you use, and there are several ways SDL apps can handle input. on older SDL some combinations work and some don't
and some may work or not depending on which keycodes squeekboard generates
with 2.26, I believe it should Just Work™ - or at least I haven't seen a broken case yet (but I haven't tried very hard to find it either)"
"Let's say I'll map <m> for accessing scummvm - should that work reliably? In fact I tried, but it didn't work reliably (sometimes, yes, sometimes no - same as e.g. <esc>)."
(well, depends on how exactly scummvm handles input events, but I doubt it does it in a way that makes any difference here)
you can compile SDL 2.26 and use SDL_DYNAMIC_API to load it instead of the system one
that should work reliably"
If I find out how to do this (I'm not a developer) and find the time to try I'll add the outcome here.
Hope this information helps a bit to sort this issue.