Post by Admin on Jan 3, 2021 10:02:16 GMT -5
Hello again,
Even though I posted a while back that the Q forum was going to be discontinued, I have been thinking on and off about doing a new keyboard. The Q Keyboard will always be available to anyone that wants it, on the Ommiglot web site. For my own purposes, sometimes I will enable it, or one of my Fusion prototypes for testing purposes.
There is a problem with international keyboards that is hard to overcome, and that involves software compatibility.
Most keyboards use AltGr to access dead keys or add accented letters (using what I call "live keys"). In some cases, AltGr can confuse software, because internally, AltGr is treated like a Right Alt key plus a Left Ctrl Key. But, Alt+Ctrl is also used for "hot keys" in programs like Microsoft Word. With an international keyboard, you are supposed to use the Left Alt key (since that's the only one you have) plus Ctrl, for the hot keys. The software is supposed to be able to tell the difference, but not all software checks this carefully enough. So, either your "hot keys" don't work correctly, or you lose access to your dead keys and accented letters. It's a no-win situation.
KbdSoft, the company that makes the KbdEdit software, recommends designing keyboards that use the special "modifier" keys Kana, Roya and Loya as alternatives to AltGr. That is how the Q Keyboard works.
However, even those special modifiers have problems. They evidently don't work in the MS Edge browser, or in UWP (Universal Windows Platform) applications. As the KbdEdit web site admits about this problem, "its cause lies deep inside the OS, and is not fixable by KbdEdit".
This is a real dilemma. A designer like me could create some fabulous keyboard, but out in the real world, it won't work for some of you because of these limitations. What to do?
I got a hint from a new feature KbdSoft is supporting, called NLS Functions, where NLS means National Language Support. In the past, NLS meant Far East languages (abbreviated as FE), primarily Japanese. Enabling Japanese keyboards is complicated due to the many things their keyboards need to accomplish. KbdSoft has "opened up" that support, allowing us to create keyboards that have nothing to do with Japanese but where we need specialized access to our keyboards.
One of the intriguing features now available allows a given key to use different scan codes depending on what modifiers are being held down.
There's a lot technically to how it works, but long story short, it is possible to turn the Caps Lock key into a dead key.
So, how does that work, and why would you want it?
First, the HOW part. Using new KbdEdit features, it's possible to give the Caps Lock different scan codes, called VK codes, based on whether the Shift, Ctrl and/or Alt keys are pressed as the same time. My intent here is to make Caps Lock, or Shift+Caps Lock, to appear to be an ordinary character key. When you want that key to actually operate as a real Caps Lock, you will have to hold down an Alt or Ctrl key first. In testing, it's relatively easy to hold the left Alt with your thumb and press Caps Lock. The Caps Lock function isn't really used all that often, so this should be a practical approach.
So, if just pressing Caps Lock would now be an "ordinary" character, WHICH ordinary character will it be? If you have ever seen an international keyboard, there is often a small Left Shift key, and just to its right is a key with < and > on it. Technically, this is known as VK_OEM_102. When a key is described as "OEM" it means that each country is free to customize it however they wish. In practice, the letters or symbols they choose for the OEM positions are dictated by years of conventional use, and in practice can't really be changed. Anyway, for a US QWERTY keyboard, you generally will not see that <> key, but from the standpoint of KbdEdit, you can "pretend" that you have one, for key mapping purposes. That is important, because while the Caps Lock key can have its VK code changed, the KbdEdit software won't let you actually assign characters to it. It has to be done 'indirectly'. By giving Caps Lock a scan code of VK_OEM_102, I can go in and edit the <> key in its place. So, it allows me to anything that I would do with a regular letter key. Then, the <> key will have its regular and Shift positions mapped to some arbitrary symbol which is then treated as a Dead Key.
Second, the WHY part. Why go through all this?
As noted above, AltGr or the Kana, Roya, Loya keys don't always work the way you'd like. And, even if they did, remapping Ctrl, Alt and even the Windows Logo or Menu keys takes those keys away from normal use. Yes, there are work-arounds, but the more work-arounds are made, the more confusing and difficult the design becomes. All that remapping means more work learning how the keyboard works, and makes it much more "non-standard".
In addition, any keyboard that uses AltGr or other extended modifier keys requires the user to hold down those modifiers while some other key is typed. Having to activate two keys at the same time takes more effort, and can make typing harder. It also makes it difficult, and in some cases impossible, for persons with severe dexterity issues to even use the keyboard at all. The Caps Lock approach does not have that problem. Suppose you wanted to use this keyboard with only one finger (or for a disabled person, by a typing stick of some kind). If this Caps Lock international keyboard is running, and Windows is properly set up with its keyboard Sticky Keys feature enabled, any letter, symbol or punctuation can be typed. That is something current international keyboards cannot claim - not even my own Q Keyboard.
The use of Caps Lock in this special way means that only one key - just the Caps Lock itself - works differently. Besides that one change, everything on the keyboard is identical in every way with a standard US QWERTY keyboard. It causes NO software compatibility problems, and doesn't take away anything you are used to using.
What's the down side? As good as all this sounds, it's not without certain drawbacks. They are not that bad, but 'full disclosure' calls for us to identify them.
1. The change to how Caps Lock works will have to be learned. You won't be able to just tap the Caps Lock key to be in caps lock mode. Now, you'll have to hold the Alt key first. It's not that hard to do, and you won't usually require it that often, but it's a change that must be learned with practice.
2. For persons with dexterity issues, being able to type in ALL CAPS can no longer be done by tapping on Caps Lock. Enabling the Sticky Keys feature allows you to keep the Shift key in a "held state", which is similar to Caps Lock, but not exactly. That impacts punctuation and digit keys, which are affect by Shift but not by Caps Lock.
3. For good typists, use of AltGr plus another key can be typed a little faster. That's because there can be a certain amount of "overlap" between when AltGr is held and the regular key typed. With the Caps Lock approach, the Caps Lock key must be released FIRST, then the second key pressed. This will result in somewhat slower typing.
4. Since Caps Lock will now be treated as a "regular" key, it also gains the "typematic" feature every regular key has: It will automatically repeat as long as the key is held down. That didn't matter when it was an ordinary Caps Lock; the internal repetition that did happen before was effectively ignored, because it just "re-asserted" that Caps Lock was being held down (so, no harm, no foul). Now, the autorepeat behavior has to be accounted for somehow.
One way to do this is to design our dead key tables so that repetitions don't cause problems. The keyboard uses a feature called Chained Dead Keys. This is when a dead key table has an entry that links to another dead key table. That is the technique used to allow dual-accented letters like in Vietnamese to be typed. It is possible to have an entry in a dead key table that links to itself. So, no matter how many times you typed an accent key, the extra ones would get ignored.
Another way to handle this is in Windows. You can set the keyboard repeat rate so that the keyboard will wait a longer time before reporting any repeated keys. This is a hardware feature in all keyboards, and Windows gives you access to the settings for it. That should be enough to prevent accidental repeats of keys, including Caps Lock. On the slowest setting, you have to hold a key down for a full second before it starts repeating. That should be enough of a delay for nearly all users. For some typists with special needs, it is possible to completely disable keyboard repeating, at the cost of a little keyboard responsiveness. So, one way or another, having a Caps Lock that repeats is an issue that can be handled.
Could we just use some other key besides Caps Lock? Yes, but doing so has its own set of issues. We could redefine the right Alt key as a "regular" key and not as a modifier. That would leave Caps Lock with totally standard behavior. But it would also mean you'd no longer have the right Alt key as an Alt key. Now, if you had a keyboard with a right Windows Logo key, you could that. But, modern keyboards have been dropping that key to simplify their designs, so we can't depend on that key being present. Even the Windows Menu (App) keys are not always present on every keyboard. Other possible candidates among seldom-used keys are Scroll Lock and Print Screen, but even they are not present on all keyboards, especially on modern laptops. Now, if some keyboard company would add an extra key that could be remapped, that might solve the problem, but it wouldn't be any help for the billions of existing keyboards that didn't have it.
No, we are pretty much stuck with the keys on the keyboards we have. There's only two viable choices: Redefine Caps Lock as discussed above, or use Right Alt in an AltGr kind of way, only not as a modifier but as a special dead key.
There's nothing to use either approach. Because the new ADKATT design truly is an All Dead Keys All The Time design, all of what makes it special is what are in the dead key tables. The "main" keyboard has only a tiny difference from a real, unmodified US QWERTY. There is no reason why each of the possible "special" keys could not be made available on different variants of the design. These would be:
- Special use of Caps Lock as described above (CL)
- Left or Right Alt key (LA, RA)
- Right Menu (apps) key (RM)
- Left or Right Windows Logo key (LW, RW)
In theory, any could be turned into this "special" key, but beyond the ones listed here, the choices become less and less practical. One international keyboard that was marketed until recently used the Grave Accent key as a dead key. That could certainly be done, but then it would take the Grave key away from normal use, which is an undesirable disruption for users.
The various versions would be named so the special key used is part of the name: ADKATT_CL for a Caps Lock version, AKATT_RA for a Right Alt Key version, and so on. These are names that would appear on the Windows Taskbar and when swapping keyboard layouts.
For users with an available Windows Menu (app) key, that key is rarely used and works the same way as does a right mouse button click in an application window. It would cause little disruption if it were taken over for another purpose.
About Cyrillic. In order to meet the goal of simplicity that I want for this design, Cyrillic support will have to be dropped. I can't really do justice to a real Cyrillic layout while fully supporting Latin. Is a Cyrillic-only version of ADKATT a possibility? I think so. I will have to first do the Latin version, and if it works out, I will try to see if Cyrillic is possible. In any case, I feel that a Latin/Cyrillic keyboard is too complex for most users. If a Cyrillic typist needed Latin, they can always swap to a standard QWERTY layout, or perhaps one I made.
I am limited by health issues, which for now makes me more tired than I would prefer, so there is a limit to how much time and effort I can devote to this new idea. But I will try and I hopeful I can come up with something. The current dead-key definition files I have now have nearly everything I need, with just a few minor adjustments required, so I don't have to start from scratch.
Well, that the idea behind the new ADKATT initiative. I am hoping to get something working in the near future.
Comments invited.
Robert
P.S. Hope you are all doing well in the crazy world we are in at the moment. Let's hope the future gets better, for all of us.