keymanapp / keymanapp/keyman

feat(developer, web): Add support for a "Last Layer" identifier for the "Next Layer" field

Open
#8,910 3 comments 0 reactions 0 assignees View on GitHub
developer/ feat web/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Is your feature request related to a problem? Please describe.

When working with many layers in a touch layout, there can be multiple ways to arrive at a given layer. That is, a given layer may be the target of more than one "next layer" property.

As a convenience for users, I would like to add a "back" button to return to the previous layer. Doing so is complicated (not possible?) when the previous layer is not tracked and cannot be specified.

### Describe the solution you'd like

I would like the "Next Layer" dropdown menu to have a built-in, option for a macro like ":last_layer:", or whatever would be JSON safe.

Keyman will interpret this target layer as the previous layer that the user was on and reload it.

I imagine that in source code the layers are treated as objects, and a field might be added to track the previous layer. This would be useful to have, per-layer, to support multiple levels of "back".

### Describe alternatives you've considered

An alternative that I use is to have layer "A" go to (next layer) "B_A", and layer "Z" goto to layer "B_Z". Where layers "B_A" and "B_Z" are both duplicates of a layer "B" that can in turn have "Back" / "Return" keys that point to layers ""A" and "Z" respectively.

This leads to unfortunate duplication of data that could be avoided if layers "A" and "Z" could both navigate to a single "B" layer that in turn could have a "Back" key with "next layer" target ":last_layer:".

### Related issues

_No response_

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [ ] Keyman for macOS
- [ ] Keyman for Windows
- [X] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

_No response_

### Operating system

_No response_

### Device

_No response_

### Target application

_No response_

### Browser

_No response_

### Keyboard name

_No response_

### Keyboard version

_No response_

### Language name

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.