Comments (7)
See also #54 for extra notes
from keyman.
Hi @mcdurdin , this issue is not just KMWeb, it is also a major bug in touch keyboards. As 90% of my keys need a "nextlayer" to default...I'm having to add line after line of non-elegant code to make the desktop KB compatible with KMW and Touch (this is currently in addition to needing to add a platform comment to every line of code with a RALT, CAPS or NCAPS)
https://github.com/erros84/keyboards/blob/master/cameroon_qwerty/source/cameroon_qwerty.kmn.
+ [T_003B] > U+003B layer('default')
+ [T_003F] > U+003F layer('default')
+ [T_0021] > U+0021 layer('default')
+ [T_00A1] > U+00A1 layer('default')
+ [T_2039] > U+2039 layer('default')
+ [T_203A] > U+203A layer('default')
and
platform('web') + [K_U] > U+0075
platform('web') + [SHIFT K_U] > U+0055
platform('desktop native') + [NCAPS K_U] > U+0075
platform('desktop native') + [CAPS K_U] > U+0055
platform('desktop native') + [NCAPS SHIFT K_U] > U+0055
platform('desktop native') + [CAPS SHIFT K_U] > U+0075
platform('desktop native') + [NCAPS RALT K_U] > U+0289
platform('desktop native') + [CAPS SHIFT RALT K_U] > U+0289
platform('desktop native') + [NCAPS SHIFT RALT K_U] > U+0244
from keyman.
@erros84 KeymanWeb is the engine within both Keyman for Android and Keyman for iPhone and iPad.
You may find that restructuring your keyboard with store
statements helps to make it easier to read, e.g.
story(touch-key) [T_003B] [T_003F] [T_0021] [T_00A1] [T_2039] [T_203A]
store(touch-out) U+003B U+003F U+0021 U+00A1 U+2039 U+203A
+ any(touch-key) > index(touch-out, 1) layer('default')
from keyman.
It may be worth noting that we are looking at ways of improving how nextlayer
works because there's a whole lot of detail about when the keyboard should switch back to the default layer and when it shouldn't; for example when pressing most punctuation it is sensible to swap back to base layer, but when pressing a digit it isn't; spacebar on some devices switches back to base layer but this is also often problematic. Any thoughts you have in that direction as to how we can genericise nextlayer
or make its use less verbose appreciated.
from keyman.
Rather than making nextlayer automagically work in certain situations, please leave it up to the keyboard developer.
First priority IMO would be to get KM to respond (after outputting the character) to whatever you configure for nextlayer in the Developer. If you can get it so that the character is output BEFORE triggering nextlayer (if chosen), that's far enough for me. This will allow the developer to precisely control it from the KMDeveloper interface.
Use cases in my situation:
- When shifted, pressing a letter writes the letter and returns to default.
- When showing "special characters", pressing a letter writes the letter and returns to default.
- Pressing a diacritic writes the diacritic and returns to default.
- Pressing some punctuation
"!?[«
etc returns from the number/symbol page to default BUT not.,()
and some others that are often used when typing numbers.
from keyman.
Thank you for the feedback. We're not planning on making things work 'automagically' -- the design would always be up to the keyboard developer. But we can design common rules that a keyboard developer can choose to employ in their keyboard, thus simplifying their keyboard rules and reducing the time required to create the keyboard layout.
We are planning to fix nextlayer
in the next sprint -- but this work will be done for the next major release of Keyman, which will be a bit further off.
from keyman.
Fixed by #310
from keyman.
Related Issues (20)
- question(web): how to handle Developer's use of Web's `InlinedOSK` 🧩 HOT 1
- chore(core): Update requirements to C++ 17
- bug(windows): Non Roman Characters appears in the Notepad <Untitled- file name> field If I use Keyman Keyboard in Windows 11 OS HOT 1
- bug(windows): Myanmar3 (SIL) and Microsoft Teams HOT 1
- chore(windows): review n purge window/src/support projects
- bug(windows): texteditor symbols fail to build
- bug(linux): Backspace doesn't work properly with text selection HOT 4
- bug(linux): context not picked up in Gnome Text Editor HOT 4
- bug(developer): eslint fails
- bug(ios/app): Long-press options in the top row appear directly under finger HOT 1
- feat(common): Add Support for Simple Misspelling Aliases to lexical models HOT 5
- bug(windows): Keyman Unable to Enter Text in MS Word Dialogs HOT 4
- bug(iOS): Double clicking the New Search link button shows 'Connection Error' message under Installed Languages view HOT 1
- bug(android): publish to play store failed with missing gradlew for 17.0.110
- chore(developer): package compiler should warn on _any_ missing resources
- bug(web): listInputs vs isKMWInput - different accepted types of HTMLInputElement
- chore(developer): `SetError` is a macro that emits `return FALSE;` Please remove
- feat: Show Developer Defined Hint Symbol When Longpress is not Present HOT 2
- bug(iOS): Crash while trying to open FirstVoices App in the iPhone / iPad Simulators HOT 4
- chore(web): eliminate UI-module proto-minification artifacts
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from keyman.