JLG Extended Keyboard Layout



Why the JLG Keyboard ?

Like many people, each time I had to write in my own language (French) for an important purpose that would require me to write in a clean and correct way, I had always been struggling doing the accents and cedillas on a US QWERTY Keyboard. So I wrote this keyboard layout at the beginning just because I really needed it.

Of course, there are already some ways to enter special characters on a US QWERTY keyboard:

  • There is for instance a keyboard layout called US – International that allows to make the accent by doing <quote> then <letter> , but I never liked it because when I have to type only the character <quote>, it was never appearing on the screen because it's a dead key. And when someone else had to use my computer, he would be always surprised of this behavior as well, which is not practical. So I wanted a solution that does not modified my QWERTY keyboard behavior at all, I wanted a solution that would be a pure extension, and not a modification of the existing behavior of the QWERTY layer.
  • Another way is to use the Windows ALT+Number combination. Like for instance, if you do ALT + 133, you get the letter é. This solution is very painful when you want to type fast and you always need to remember what is the matching code foreach characters. (ALT + 130 is à, ALT + 138 is è, ALT + 135 is ê, etc. in fact, I don’t remember the others and I don’t have anymore with my keyboard layout.
  • I tried one time to use the French AZERTY layer on my QWERTY keyboard, but I am a purist, I cannot support that when I press the key Q, I get a A… What the point to have letter on your keys if it doesn’t match? And in fact, I prefer the QWERTY keyboard mainly because all the following reasons:
    • The characters for coding or entering a unix command line (yes, I am a developer) are much more accessible than on an AZERTY, specially the { and }, the [ and ], or the | (pipe), the # (for perl or shell comment), the ~ (tilde), and the @ for the mail.
    • the numbers (1, 2, 3, etc.) cannot be accessed directly, you need to do <SHIFT> + <KEY> each time (I use a laptop and I don’t have the numeric pad).
    • I prefer to have the "a" letter directly on my little finger than the "q" because I use much more "a" than "q"… (no, I am not lazy ! it’s just more convenient for the every day life ;O)
  • another way is to use a software that someone already wrote, but I haven’t find one that would suit my needs, specially the fact that: they all modify the QWERTY behavior in various ways. The other thing is they are mainly shareware and I just prefer freeware like a lot of internet users. I am not going to do a review in details of all these software here because there are already plenty of forums on the subject that handle the subject.

One day, I saw that Microsoft released a software called Microsoft Keyboard Layout Creator™. I started to use it and it’s was great. But this software has technical limitations. I started to investigate more deeply in the Microsoft Windows Driver Kit™ and I understood better how the Microsoft keyboard layout interface was working. Then I wrote my own C program that compiled with the Microsoft™ operating system and it worked well! The JLG Extended Keyboard Layout was born.

But the particularity of this software does not come from how it was written but how it was decided to design the keyboard layout. I wanted something that would have the best compromise regarding the following constraints:

  • Remembering easily how to type a character
  • Keeping intact the actual behavior of the QWERTY US Keyboard
  • Reaching the maximum of Unicode characters
  • Interfering as little as possible with the common used applications on Windows
  • Having ergonomic combinations.

From the above constraint list, I started to setup a process that is briefly the following:

  • I only use the concept of dead key in combination with what I call the JLG Key. Generally, my JLG Key is CTRL (which is ergonomic) and/or ALT+GR which has a minimum of interference with existing applications.
  • Then I use the concept of function keys. For instance, JLG Key + <quote> is the acute accent function. By this, I mean that the next character that will be entered will be with an accent if the Unicode characters table allow it. Functions can be used for many miscellaneous purposes:
    • Accents (grave accents, circonflexe accents, etc.)
    • Cedillas, or comma under letters
    • More generally all diacritic marks.
    • Currencies
    • Other alphabet letters (greek, Cyrillic, etc.)
    • Mathematical symbols
    • Mirror (Some characters can be considered as the reverse or the mirror of characters, for instance ∀ and A )
    • Astrologic signs
    • Phonetics
    • Etc.
  • Then I use the concept of function to assemble characters: JLG Key + <key1>, then <key2> will give a character that can be interpreted as the union of <key1> and <key2>. For instance, JLG Key + /, then = , would give as shown in my logo.
  • I used as well the concept of making some symbols as typing their name. For instance, JLG Key + T, then E would give a telephone (☎) or JLG Key + U, then M would give an Umbrella (☂)
  • Finally, I used a month codification as follow: 1, 2, 3 for January, February, March respectively and so on, and N for November, D for December. October can be reach either by O or “zero”. This is particularely useful when entering a astrological sign. Taurus, which is mainly in May (5th month of the year ) would be reach by JLG Key + z (like zodiac), then 5.
  • If a character can be reached by many ways described above, all ways had to be implemented on the keyboard. For instance, ¥ (yen, japanese currency) can be entered by JLG Key + Y then =, but also with the currency function (JLG Key + $, then Y).

Many friends found that my idea was great and encouraged me to diffuse it. So I decided to create this web site to give it to everybody for free. Remember: I don't like the shareware… I thought a little bit about making a paying version, but don’t have the skills to sell software. I just added a "donate" button for honest people who would like to pay a little bit for my effort and for maintaining this web site. I am just a developer and what I like to do is developing software, not selling them. And I don’t think a business model consisting to selling this to individual or company would work. However, this software could have a value if it is preinstalled on a computer, so why not selling a licence to authorize computer manufacturers to pre-install it with their other custom driver. I think that certain customer would certainly perfer to buy a computer with a keyboard that allows the user to enter character in their own language, specially in Eastern Europe countries where most of the sold keyboard are QWERTY, but also in United States where a lot of immigrant are living and Spanish is often spoken. So I am challenging the manufacturer to sell them an exclusivity per country for authorizing them to sell computer with my keyboard layout pre-installed.

To protect my idea which in fact is simple, I already applied (in August 2007) for a patent on the concept of designing a keyboard layout as indicated above. So this software is free for individual use, but it cannot be legally replicated or redistributed. If you want to install it within a company, please send an email to contact@jlg-utilities.com.

This keyboard is the first one in the world to be able to reach more than 1000 unicode characters, allowing to enter text in more than 30 latin alphabets in a simple, easy to remember and ergonomic way. This is a keyboard layout very useful in many purposes by many kind of people.

To end this article, I would like to thanks many people around me which now use every day this keyboard layout in all kind of work, specially my wife Suzana which is happy to be able to enter English, French and Romanian characters all on the same keyboard layout and many European friends like Razvan, Olivier for their user comments, Hady for his help regarding my web site, and a very special thanks to Julien that is making effort to convince manufacturers to add it in their preinstalled drivers. If one day, you buy a computer with this keyboard already pre-installed, it's because of him.