Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!clyde.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!apple!olivea!uunet!sco!mikep From: mikep@sco.COM (Mike Patnode) Newsgroups: comp.windows.x Subject: PC/AT Keyboard X Keysym Proposal - R.F.C. Message-ID: <9452@scolex.sco.COM> Date: 7 Jan 91 00:52:24 GMT Sender: news@sco.COM Organization: The Santa Cruz Operation, Inc. Lines: 255 The following is a proposal for new keysyms to be added to the Standard X Keysym definition. Please send me any comments you may have. This will be brought up for discussion at the i386 X Developer's BOF being held on Tuesday night at the MIT Technical Conference. See you there. mp ----- Mike Patnode The Santa Cruz Operation Software Engineer 400 Encinal Street {ucscc,uunet}!sco!mikep mikep@sco.COM P.O. Box 1900 (408) 458-1422 Santa Cruz, CA 95061 --------------------- cut here ----------------------- Title : PC/AT Keyboard X Keysym Proposal Date : Thu Jan 05 1991 Status : DRAFT - for comments Synopsis : This document describes a proposal for new X keysyms to be added to the X11 KEYSYM Standard Encoding. Because of the large number of PC/AT keyboards in use, and the number of different companies producing X servers for machines with these keyboards, vendor specific keysyms are not an appropriate solution. Futhermore, a complete set of standard keysyms for the PC/AT keyboard will be needed to aid portability in application binaries which comply with the Intel386 Binary Compatibility Specification. This document proposes 13 new keysyms in all: one for which there was no X equivalent, the others in order to uniquely identify the cursor and page control glyphs which share the numeric keypad. Author : Mike Patnode The Santa Cruz Operation mikep@sco.com Distribution : comp.windows.x jimg@sco.com jsw@sgi.com kylec@sco.com mikep@sco.com rws@expo.lcs.mit.edu scottw@ico.isc.com (c) 1991 The Santa Cruz Operation, Inc. - 2 - 1. Introduction Since the majority of X Window research and development has been historically done on UNIX workstations there was never a great deal of emphasis put upon Intel based personal computers. Now, with the emergence of faster Intel 386 and 486 based machines, the PC/AT computer has become a viable UNIX workstation. There are a number of software vendors who produce X servers for these machines, as well as some non-Intel hardware manufactures who have adopted the IBM AT keyboard layout. Unfortunately, the standard X Keysyms are not sufficient to represent all the keys on the IBM AT and PC keyboards. 2. Keypad Glyphs The main problem arises from the PC/AT numeric keypad. The numeric glyphs share a key with the cursor and page control keys. The X Keysym definition provides special keysyms for most keypad keys which may also be present elsewhere on the keyboard. It does not provide keypad keysyms for the arrow or page controls keys. Hence, on the IBM AT keyboard, an X programmer cannot easily distinguish between the Up Arrow key and the Keypad Up Arrow key unless the server writter provides non-standard or unintuitive keysym names. The simple solution is to create new standard keysyms for the PC/AT keyboards. Not only are these keyboards in wide spread use, but this will also aid X application programmers who are trying to comply with the Intel386 BCS. This introduction of new keysyms may cause some problems with existing applications, but it is hoped that most X programs should be able to overcome these incompatibilities via the translation table mechanism. (c) 1991 The Santa Cruz Operation, Inc. - 1 - 3. New Keysyms There are 3 main areas which this proposal covers. One is simply a common key for which there is no keysym equivalent defined. The second is the 11 keypad keys which have two glyphs each on the PC and AT keypad. Finally, there is no Page Up or Page Down keysym defined. The keycodes (hex values) used here are unused in the current keysym definition. These values are only suggestions and are not a requirement of the proposal. There seems to be no X keysym which matches the SysReq key. 0xFF15 XK_Sys_Req System Request Next is the PC/AT keypad. The current X keysym set already defines some keypad keys such as KP_Enter and KP_Add. The following keysyms are needed to complete the definition. 0xFF96 XK_KP_Home Keypad Home 0xFF97 XK_KP_Left Keypad Left Arrow 0xFF98 XK_KP_Up Keypad Up Arrow 0xFF99 XK_KP_Right Keypad Right Arrow 0xFF9A XK_KP_Down Keypad Down Arrow 0xFF9B XK_KP_Pg_Up Keypad Page Up 0xFF9C XK_KP_Pg_Dn Keypad Page Down 0xFF9D XK_KP_End Keypad End 0xFF9E XK_KP_Insert Keypad Insert 0xFF9F XK_KP_Delete Keypad Delete The PC/AT Keyboard does not have a unshifted glyph on the center keypad key (numeric 5). For the sake of consistency the existing KP_Space keysym should be used here. The last addition would be the regular Page Up and Page Down keysyms. Although the X Keysym common approach would suggest the use of Prior and Next, the large number of PC/AT keyboards in use should justify the addition. Furthermore, it would be more consistent with the new keypad keysym definitions as well as the actual key engravings. 0xFF59 XK_Page_Up Page Up 0xFF5A XK_Page_Down Page Down (c) 1991 The Santa Cruz Operation, Inc. - 2 - 4. Conclusion The goal of these additional keysyms is to allow a application programmer to easily distinguish all of the keys on the keyboard. Currently, this is a very difficult and confusing process which is implemented differently by each server. By introducing these keysyms as a standard for the PC/AT keyboard, applications can be more easily written for a variety of X platforms. (c) 1991 The Santa Cruz Operation, Inc.