Skip to content

feat(developer,web): Specify initial layer for touch keyboards #2760

@mcdurdin

Description

@mcdurdin

Is your feature request related to a problem? Please describe.
It would be very helpful to be able to specify an initial layer for an on screen keyboard. This would be triggered on any context change but not during typing otherwise (except with a forced command?)

Coming from BennyLin in community:

For the touch layout, is it possible to set the initially displayed layer to be SHIFT layer?

Marc responds:

This is not currently possible.
You’d have to be tricky and rename your shift layer to ‘default’ and your default layer to ‘lowercase’ or something like that … which is kinda messy and I don’t really recommend it!

Describe the solution you'd like
The solution should be a language extension. I haven't fully modeled this but it would be amazing if this layer selection could be controlled by context, for example (pseudocode):

begin initial-layer > use(initial-layer)

group(initial-layer)

c Capital at start of context
nul > layer('shift')

c Capital after full stop
'. ' optany(' ') > layer('shift')

c Click into some digits and go to numeric layer
any(digit) > layer('numeric')

c Anything else go to default layer
nomatch > layer('default')

Describe alternatives you've considered
My horrific alternative suggestion to Bennylin!

Product context

  • KeymanWeb: native touch and embedded touch
  • Developer: compiler, language features, UX

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions