canonical / ubuntu-frame-osk

On-screen keyboard for Ubuntu Frame, based on Squeekboard
GNU General Public License v3.0
4 stars 2 forks source link

List multiple layouts by default #36

Open AlanGriffiths opened 2 years ago

AlanGriffiths commented 2 years ago

To make the range of supported layouts clear to developers deploying Frame OSK it would be nice to show the full range of layouts, Vis:

$ ubuntu-frame-osk.list-layouts | cut -f1 -d\  | grep -v -e ID -e Run -e ^$ | tr '\n' ',' | sed s/,$/\\n/
am,am+phonetic,ara,be,bg,bg+phonetic,br,ch,ch+de,ch+fr,cz,cz+qwerty,de,dk,epo,es,es+cat,fi,fr,gr,il,ir,it,it+fur,jp+kana,no,pl,ru,se,th,ua,us,us+colemak,us+dvorak

In theory it is possible to set the default layout option to the above value and allow any of the supported layouts to be selected through the UI.

In practice, squeekboard simply adds all the selected layouts to a menu list (which does not support scrolling) and, with too many items in the list, this goes partially offscreen and is unusable.

Ideally, we would update the squeekboard UI to respect screen boundaries and to work with more layouts than fit on the screen. (And, naturally, propose the changes upstream.)

We could also set the default to a curated list of layouts, but it is unclear what that list should be.

AlanGriffiths commented 2 years ago

The only duplicate layouts in the list are French & Belgian:

$ fdupes -R parts/squeekboard/src/data/keyboards
parts/squeekboard/src/data/keyboards/be.yaml
parts/squeekboard/src/data/keyboards/fr.yaml

parts/squeekboard/src/data/keyboards/be_wide.yaml
parts/squeekboard/src/data/keyboards/fr_wide.yaml
AlanGriffiths commented 2 years ago

Here's an "strawman" curated list on a 1024p display:

$ snap set ubuntu-frame-osk layout=us,am,ara,bg,br,ch,ch+fr,cz,cz+qwerty,de,dk,epo,es,es+cat,fi,fr,gr,il,ir,it,it+fur,jp+kana,no,pl,ru,se,th,ua

Screenshot from 2022-03-04 16-08-29

AlanGriffiths commented 2 years ago

Note that this goes offscreen on a 720p screen Screenshot from 2022-03-04 16-22-05