Wednesday, January 28, 2004 |
|
|
I've had a few comments (some off-line) about my last post, so I thought I'd write a little bit more.
First of all, some clarifications of the instructions for using the keyboard. A few warnings are generated when building the layout. The warnings can be ignored; they simply highlight the fact that a few characters can be generated by more than one key sequence. Also, you may need to reboot your machine after installing or changing your keyboard layouts; simply logging off might not be good enough. Finally, I should mention that keyboard layouts should work in Windows 2000 as well as Windows XP and beyond.
Eli provided more information about the shortcuts available in Word. To see the international character support in Word, search the help for "international characters". You'll find ways to type various accented characters, as well keys for '¿' and '¡'. Unfortunately, though some of these shortcuts work in some other Microsoft applications, some of them don't, and most non-Microsoft applications don't support any of them, so I prefer the consistency of my custom layout. But thanks for the info, Eli; I'm sure that these keyboard shortcuts are good enough for many people.
To explore any keyboard layout, you can, of course, use the Keyboard Layout Editor to import that layout. The user interface is pretty good; in particular, I like the way you can hover the mouse cursor over a "dead key" to see all of the possibilities.
If you want to play with your active keyboard in a slightly more user-friendly fashion, download the free Microsoft Visual Keyboard. (After you've installed it, find it under Start > Programs > Microsoft Office Tools.) It's not as visually appealing (if you ask me), but it does allow you to type directly into your application by clicking on the keyboard, and it has the option to stay on top of other windows.
If you're curious to know how I most frequently use my keyboard layout, these are a few of my favorite keys:
- AltGr+1 and AltGr+/: ¡ and ¿
- AltGr+[ and AltGr+]: « and » -- I sometimes use these instead of double-quotes in technical documentation.
- AltGr+' and AltGr+` and AltGr+~ and AltGr+^ and AltGr+": dead kêys för áçcèñts.
Some cool keys that I should get more familiar with:
- AltGr+c and AltGr+r: © and ®
- AltGr+C: ¢
- AltGr+:: °
- AltGr+9 and AltGr+0: smart ‘single quotes’
In fact, I'm motivated to add a few characters. The layout is updated below:
- AltGr+( and AltGr+): smart “double quotes”
- AltGr+.: bullet (•)
- AltGr+-: endash – (moved ¥ to AltGr+%)
- AltGr+_: emdash —
If you've already installed the previous version of my keyboard layout, you should probably uninstall it first (using the Add/Remove Programs control panel). And before you uninstall a keyboard layout, you should probably replace it with the standard "US" keyboard first. I apologize for not providing step-by-step procedures for all of this, but I'm sure you'll figure it out...
MyKeys.klc (16K) |
1/28/2004 4:55:18 PM (Pacific Standard Time, UTC-08:00) | | Keyboard
|
|
|
|
Tuesday, January 27, 2004 |
|
|
I think it is safe to say that most Windows XP users in the United States use the standard English "US" keyboard. (Raise your hand if you use "United States-Dvorak". I didn't think so...)
Unfortunately, the standard "US" keyboard has limitations. The word "résumé" is a perfectly valid English word, and yet there's no easy way to type an accented "e" with the "US" keyboard. If you happen to be running Microsoft Word, there's probably a keyboard shortcut, but there's not really any universal way to enter an accented "e" without using Character Map or memorizing an Alt+Number key sequence.
Enter the "United States-International" keyboard. It's a fun keyboard layout that supports all sorts of international characters. The right Alt key is now called "AltGr", and is used as an additional "shift key" to provide access to these characters. This layout also intuitively supports accented characters with the use of "dead keys". For example, if I hit the 'single-quote' key followed by the 'e' key, I get "é".
Unfortunately, this blessing is also a curse -- now I can't type a single-quote unless I hit the spacebar after it. Not good. So, I've been installing both the standard and international keyboards, assigning keyboard shortcuts to each of them, and switching between them as necessary. The trouble with this solution is that my active keyboard layout has a habit of switching without my knowledge. Perhaps I'm accidentally hitting the layout switching keystrokes, perhaps Windows is getting mixed up; I don't know, but it's annoying.
Thankfully, Microsoft provides the Microsoft Keyboard Layout Creator for free. I decided to create my own keyboard with the best of both worlds. I launched the Keyboard Layout Creator, loaded the "United States-International" keyboard, and restored the "dead keys" on the keyboard to their standard "US" keyboard behavior (specifically, the back-quote, single-quote, double-quote, tilde, and caret). So as to not lose the valuable functionality of these dead keys, I moved those code points to the same keys, but with the AltGr shift state. That is, instead of hitting 'single-quote' then 'e' to get é, I hit 'AltGr+single-quote' then 'e'.
So, I'm using my new keyboard exclusively. The only problem I have found with my solution is that the right Alt key, now AltGr, no longer functions as an Alt key. For example, if I try to hit Alt+F to get to the File menu, I have to use the left Alt key rather than the right. I can live with that.
If you'd like to try out my keyboard firsthand, download and install the Microsoft Keyboard Layout Creator, and open the attached keyboard layout file. You can play with the keyboard layout by selecting "Test Keyboard Layout" from the Project menu. Feel free to add your own keyboard code points; for example, AltGr+. might be a fun way to insert a bullet!
If you decide you want to use the keyboard, choose "Build DLL and Setup Package" under the Project menu, and install the keyboard with the generated installer. Reboot (or at least log out and back in), find the keyboard settings under the Regional and Language Options control panel, and replace your "US" keyboard with the "United States-International (MyKeys)" keyboard. You can always switch back later, but hopefully you'll be running Character Map a little less often from now on.
MyKeys.klc (16.37 KB)
Update: More information in my next post. |
1/27/2004 4:41:48 PM (Pacific Standard Time, UTC-08:00) | | Keyboard
|
|
|
|
Tuesday, October 14, 2003 |
|
|
I use a Microsoft Natural Keyboard Elite, and, for the most part, I love it. It has a good feel and doesn't take much desk space. The rearranging of the navigation keys took some getting used to, of course, but that was a long time ago. What don't I like about this keyboard? Well, it would be cool if it had USB ports on it, but I can live without that. Also, the keyboard is extremely sensitive to liquids, so I have to be extra careful not to keep water nearby.
The only other thing I sometimes wish for are those cool multimedia keys on the new keyboards. In particular, the Play/Pause key seems like a great way to interrupt whatever music you happen to be listening to. However, I have a coworker with the Natural Multimedia Keyboard, and there are lots of things about it that would drive me nuts, so I'm not going to get one of those. (What exactly? Well, for starters, "enhanced F-key functionality," the navigation keys are rearranged again, there's no Insert key above the arrow keys (call me crazy, but I still use Ctrl+Insert to copy from time to time), and the right Windows key is missing, which makes Win+L more difficult to type (to lock the workstation), and shifts the right Ctrl key to the left, leaving an empty space where that key should be.)
In any case, there must be a point here somewhere, because this isn't really supposed to be a keyboard review. Well, I ran into Chris Sells' Scancode Mapper while browsing around and wondered if I could use it to convert a key that I never use, say, the Scroll Lock key, to work like the Play/Pause key on the multimedia keyboards. It looked promising, but alas, it didn't work. I didn't give up, though, and after doing some additional research, I figured out how to do it!
First, download and run Scancode Mapper. Use it to map "Scroll" to "MediaPlayPause", and commit the changes. Note that it has actually mapped the Scroll Lock key to G; I suppose this would classify as a bug, but I haven't looked at the code. In any case, exit Scancode Mapper and fire up the Registry Editor. Head over to "HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Keyboard Layout", and edit the "Scancode Map" value. Feel free to read the documentation for this registry value, as it uses a very simple format. The problem is that Scroll (46) is being mapped to G (22) instead of Play/Pause (e0 22). So, simply replace the "00" after the "22" with an "e0", and you're good to go. The binary editor inserts anything you type by default, so be sure you've replaced and not added. I shouldn't have to mention that you edit the Registry at your own risk; it's a dangerous business, so be careful! (For reference, here's my data, which defines only the one mapping: 00 00 00 00 00 00 00 00 02 00 00 00 22 e0 46 00 00 00 00 00)
Anyway, once you've rebooted, your Scroll Lock key is now a Play/Pause key. Have fun!
Update: Minor correction, as described in the comments.
Update: Changed category to Keyboard. |
10/14/2003 4:13:58 PM (Pacific Daylight Time, UTC-07:00) | | Keyboard
|
|
|
|
|
|
|
| Archive |
| March, 2008 (1) |
| January, 2008 (1) |
| September, 2007 (1) |
| July, 2007 (1) |
| June, 2007 (3) |
| May, 2007 (2) |
| January, 2007 (2) |
| December, 2006 (1) |
| November, 2006 (2) |
| August, 2006 (6) |
| July, 2006 (3) |
| May, 2006 (4) |
| April, 2006 (2) |
| March, 2006 (1) |
| February, 2006 (1) |
| January, 2006 (1) |
| December, 2005 (2) |
| November, 2005 (5) |
| October, 2005 (11) |
| September, 2005 (7) |
| August, 2005 (1) |
| July, 2005 (2) |
| June, 2005 (2) |
| April, 2005 (5) |
| March, 2005 (11) |
| February, 2005 (6) |
| January, 2005 (2) |
| December, 2004 (1) |
| November, 2004 (1) |
| October, 2004 (3) |
| September, 2004 (1) |
| August, 2004 (5) |
| July, 2004 (10) |
| June, 2004 (3) |
| May, 2004 (5) |
| April, 2004 (3) |
| March, 2004 (10) |
| February, 2004 (10) |
| January, 2004 (15) |
| December, 2003 (1) |
| November, 2003 (2) |
| October, 2003 (13) |
| September, 2003 (20) |
| August, 2003 (24) |
|
|
|
|