Roozbeh Pournader <roozbeh at sharif dot edu> wrote: > BTW, I would love to see a standard keyboard layout/input method > specification language. Why no one has started such a thing?
There is such a thing -- ISO 9995. This standard comprises seven parts; Part 1 defines a row-column notation for every key on the keyboard. For example, the "2" key is at position E02, and the "S" key two rows below that is at C02. The shift states ("levels") are also identified: Level 1 is the normal state, Level 2 is the Shift state, and Level 3 is the AltGr or Ctrl+Alt state. (There isn't supposed to be a "Level 4," corresponding to Shift+AltGr, but many systems provide one.) I can't find a definitive online reference to Part 1, but if you visit Alain LaBonté's site at: http://iquebec.ifrance.com/cyberiel/sc35wg1/ you can read and download draft copies of Parts 2 and 3, which should give you all the information you need to figure things out. (Alain is the project editor for the ISO 9995 series.) The nice thing about ISO 9995 nomenclature is that you can refer unambiguously to, say, the "B01" key instead of calling it the "Z" key and confusing your French and German users. The disadvantages are that the system is not familiar or convenient to many people, especially end users -- quick, what key is at C07? -- plus there are some keys that may appear in different physical locations, such as the (U.S.) backslash/ vertical bar key, which may be found at D13, C12, or even B00. Your ISIRI 2901:1994 keyboard layout, displayed using ISO 9995 notation, would look like this: -- Key Level 1 Level 2 --- ------- ------- E00 U+200D -- E01 U+06F1 U+066C E02 U+06F2 U+0021 E03 U+06F3 U+066B E04 U+06F4 U+FDFC E05 U+06F5 U+066A E06 U+06F6 U+00D7 E07 U+06F7 U+060C E08 U+06F8 U+002A E09 U+06F9 U+0029 E10 U+06F0 U+0028 E11 U+002D U+0640 E12 U+003D U+002B D01 U+0636 U+0652 D02 U+0635 U+064C D03 U+062B U+064D D04 U+0642 U+064B D05 U+0641 U+064F D06 U+063A U+0650 D07 U+0639 U+064E D08 U+0647 U+0651 D09 U+062E U+005D D10 U+062D U+005B D11 U+062C U+007D D12 U+0686 U+007B C01 U+0634 U+0624 C02 U+0633 U+0626 C03 U+06CC U+064A C04 U+0628 U+0625 C05 U+0644 U+0623 C06 U+0627 U+0622 C07 U+062A U+0629 C08 U+0646 U+00BB C09 U+0645 U+00AB C10 U+06A9 U+003A C11 U+06AF U+061B C12 U+005C U+007C B01 U+0638 U+0643 B02 U+0637 -- B03 U+0632 U+0698 B04 U+0631 -- B05 U+0630 U+200C B06 U+062F -- B07 U+067E U+0621 B08 U+0648 U+003E B09 U+002E U+003C B10 U+002F U+061F A U+0020 U+200C -- -Doug Ewell Fullerton, California