I’m new to the Keyman project, and I’m looking to Keyman for a good on-screen keyboard (Windows). I know that Keyman is focused towards supporting many languages (and that’s something I need), but how flexible is it when it comes to being a good on-screen-keyboard? I have some beginners questions. Please, direct me elsewhere if this is the wrong forum.
Can I use Keyman Developer to create an onscreen-keyboard that appears and disappears automatically when I select an input field? I have not seen this feature mentioned anywhere, so I guess it requires source code changes(?) Is this feature easier to reach when building a Web keyboard?
Can I delete certain keys from the on-screen keyboard layout? I briefly tried to import a layout from windows and deleted the code lines belonging to ‘f’ in the Layout tab. Then in the On-Screen tab I filled from layout. This only made the f-key blank, but how do I delete it?
Can I change the appearance of the on-screen keyboard, such as hide the top bar or change colours? As I understand some of these things are planned for v19, but can I somehow do this already now by modifying files directly? Again, is it at least possible when building for Web?
I appreciate the help in understanding what Keyman is and what it isn’t.
The features you mentioned is not in the current version of Keyman, but you are allowed to create a feature request about it here. This way you help us prioritize the feature(s) users need most.
As for the delete certain keys and change the appearance, it is possible to do them in the Touch Layout in Keyman Developer.
Since the on-screen keyboard is using all the keys to display, deleting certain keys and hiding the top bar is not possible at this point. You are very welcome to open a feature request for all of this, and it will also be useful to let us know your experience of a good OSK as well.
Thanks for the explanation. If I want to use a certain keyboard on my own website, naturally I will build the keyboard with web selected as my target. It then produce a .js file. What else do I need for people to use my keyboard as an on-screen keyboard on my web page? Do they need Keyman Desktop installed, or is this web target a completely separate thing, and all that is needed is the .js file?
For a web keyboard, you don’t need Keyman Desktop (now known as Keyman for Windows). However, you will need KeymanWeb itself. You can learn more about integrating KeymanWeb at the KeymanWeb Developer Home
To amplify on what Marc said about deleting keys from an on-screen keyboard:
It is not possible to delete a key from a desktop keyboard layout, because a physical keyboard will have whatever keys it has. You can delete the code for a key, so if the user presses it, nothing happens, but you cannot remove the key from the physical keyboard.
Similarly, if an on-screen keyboard is to represent a physical keyboard, it has to have all the keys that the physical keyboard has. If you define a key as non-responsive, it still has to appear on the on-screen layout.
Touch screen keyboards do not represent a physical keyboard, so there you are free to add new virtual keys, or remove keys that your template uses. That is why you can delete a key on a touch screen layout but not on a physical keyboard layout.
I guess my dilemma is that I’m right in between Keyman’s on-screen keyboard and touch-screen keyboard. I’m in a Windows desktop environment, but I have no physical keyboard, so the mapping to a physical keyboard does not matter in my case. The touch keyboard is supported in iOS and Android, but not Windows.
Still I’m thinking that I may be able to work around the limitations and hide certain buttons in the web environment, using css.