keymanapp / keymanapp/keyman

bug(windows): standardize interaction between OSK and physical keyboard modifier keys

Open
#12,677 0 comments 0 reactions 1 assignee Claimed by @rc-swag View on GitHub
bug m:osk windows/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

Implement predictable behavior when clicking on a modifier key on the OSK and pressing the corresponding physical key.

After our design discussion, we agreed to the following:

| \# | OSK State | User Action | Expected Result |
| :---- | :---- | :---- | :---- |
| 1 | Open to **default** layer | A OSK modifier key is clicked with the mouse | The modifier key toggles state between selected or unselected and displays the corresponding layer of characters for each key on the keyboard. |
| 2 | Open to **default** layer | An OSK character key is clicked with the mouse | The key's character is output to the active client application. |
| 3 | Open with the **shift** layer selected and the SIL Euro Latin keyboard active | The user presses the 'S' key on the physical keyboard. | \=\> capital 'S' OSK remains in the **shift** Layer |
| 4 | Open with the **shift** layer selected and the SIL Euro Latin keyboard active | The user holds down the **shift** key and presses the 'S' key on the physical keyboard, then releases the **shift** key. | \=\> capital 'S' OSK returns to the **default** layer |
| 5 | Open with the **shift** layer selected and the Khmer Angkor keyboard active | The user holds down the **option**/**alt** key and presses the 'S' key on the physical keyboard​, then releases **option/alt** key. | \=\> ᧭ (RAlt+Shift+S) OSK returns to the **shift** layer |
| 6 | Open with the **default** layer selected and the SIL Euro Latin keyboard active | The user presses and releases the shift key on the physical keyboard. | OSK momentarily shows the **shift** layer, then returns to the **default** layer |
| 7 | Open with the **default** layer selected and the SIL Euro Latin keyboard active | The user presses and holds the shift key on the physical keyboard and then presses the 'S' key on the physical keyboard. | OSK momentarily shows the **shift** layer, \=\> capital S, then returns to the **default** layer |
| 8 | Open with the **default** layer selected and the SIL Euro Latin keyboard active | The user presses the Caps Lock key. | Keyman shrugs (.kvk does not support Caps Lock yet) TODO: open a feature issue Future: show the Caps Lock layer Q: what happens to Shift state? Q: what about Shift Lock? |
| 9 | Open with the **shift** layer selected | The user closes the OSK and then opens it again. | OSK is reset to the current state of the hardware modifiers |

Also see Mac issue #12584

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.