Details

Since vkeyboard layout is dependent on LCD_WIDTH, targets for which main width >= 160 but remote width < 160 have a different layout on each LCD. See attached sim screenshot and inquire apps/recorder/keyboard.c:251 for more detail.

The button handling isn't consistent as well (e.g., after four DOWN presses it goes to the edit-line whereas SELECT enters the character under the main lcd cursor).

There's a single bool line_edit = false; state variable. We could move it
to the per-screen struct keyboard_parameters param[]. That way, one
screen can be on the edit line and not the other.

It's a bit convoluted though: if the layouts are different, motion on one
screen might obviously not make sense on another screen. Could we add
remote control key mappings for all keys (not just SELECT) so that we
can keep different positions per screen?

I don't even own a remote control myself so...

I explain in P#6324 that a similar issue makes the voice speak the wrong
char.

It just makes the line_edit state a per-screen variable. Has to make sure
not to modify editpos twice though.

And it has the voice speak in accordance with the first screen only,
which fixes that discrepancy too (as long as you're not using a remote).

The patch is somewhat awkward to read because there's lots of indentation
changes, and the #ifdefs are a bit hellish. Also bare in mind that I have
only an X5 to try this on and no remote, plus I don't see the screen and
voice feedback is one of the things in need of fixing :-). Still, it
seems to work!