The Shift Modifier is not working in default and numeric layer of Keyman for Android


When I am testing the ‘‘basic keyman touch layout’’ in Keyman for Android version 11.0.2058 (beta), it is noted that the Shift Modifier of Key is not working in default and numeric layer.


Which language and keyboard are you using in the Keyman for Android app? (It’s listed on the spacebar).

Each keyboard has its own definitions for shift modifiers. For example, in the default keyboard English (EuroLatin (SIL)):

Default layer (lower case)


Pressing the shift key (up arrow) goes to the shift layer (upper case).
Pressing the numeric key (123) goes to the numeric layer

Shift layer (upper case)


Pressing the shift key returns to the default layer
Pressing the numeric key goes to the numeric layer

Numeric layer


Pressing the currency key (€£¥) goes to the currency layer
Pressing the lower-case key (abc) goes to the default layer

Currency layer


Pressing the symbol key (~¿¡) goes to the symbol layer
Pressing the lower-case key goes to the default layer

Symbol layer


Pressing the numeric key goes to the numeric layer
Pressing the lower-case key goes to the default layer


I’m assuming you are talking about your Swanalekha Malayalam keyboard? I am using Keyman 10.0.508 on Android and I’m able to shift layers. So, if it’s the same keyboard, are you thinking there’s an issue with the beta?


Yes, I am talking about Swanalekha Malayalam keyboard. In default layer ‘K_HYPHEN with shift modifier’ assigned for key near to space bar. But in keyman for android (both stable and beta version) produce output only for ‘K_HYPHEN’. The shift state assigned for that particular key is not working. I tested it with Mobile web and found working perfectly.


ok. it sounds like you’re wanting this rule (which works on Desktop platforms and KeymanWeb) to work in touch layout mobile platform. Note, an external keyboard (bluetooth or USB) with the Keyman for Android app works too:

+"_"> U+200C

The touch layout default layer defines
Key Type: Default Modifier: shift Code: K_HYPHEN with a label “_” (U+005F)

I think the cleaner solution is updating the touch layout by changing K_HYPHEN to:
Key Type: Default Modifier: (current layer) Code: U_200C.

The “^” key right of the spacebar also has the same issue.


The alternative solution is not practical in the present rules mentioned below.


Is this an issue or bug of Keyman for Android ? The same occurred in numeric layer also.



What did you define the [SHIFT K_HYPHEN] to generate in your rules?


+ "_" > ????

(admin edited for code formatting)


If this is something that is not correct in Keyman for Android, we need to fix this rather than changing keyboards to work around it. Can we investigate further and open an issue if this is a bug?

(Note: the whole team are all travelling internationally this week so may have delayed replies.)


I’ve now had the opportunity to test the keyboard on my Android device. As far as I can tell, the SHIFT+K_HYPHEN rule is working correctly. Can you give some more examples of what you are expecting to see and what you are getting instead?


I am really sorry @Marc_Keyman . When I was testing the said problem, I was on Keyman for Android beta channel in Play store. So I misunderstand the beta version as stable version. SHIFT+K_HYPHEN rule perfectly works with stable 10.0 version of Keyman for Android.
Today I confirm that the said problem related with Beta 11.0.2060 version & Beta 12.0.8 version of Keyman for Android. In default layer of these beta versions SHIFT+K_HYPHEN not working.

You can test it with version 1.2.1 of Swanalekha Malayalam keyboard.
If default layer Input key : r_ ie [K_R] [SHIFT+K_HYPHEN]
Output from Keyman for Android 10.0 :
Output from Keyman for Android 11.0.2060 beta : ര്-

Sorry for my (poor) English language.


Can replicate the issue in Keyman Web 11.0.206 Beta test page.
This will be tracked as


We will aim to fix this before the 11.0 stable release.


With the latest version 1.2.2 of Swanalekha Malayalam and Keyman for Android 11.0.2061 Beta
r_ i.e. [K_R][SHIFT+K_HYPHEN] outputs

When I created issue 1568, I misunderstood and was expecting [SHIFT + K_HYPHEN] to output something.