home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / windows / x / 20465 < prev    next >
Encoding:
Text File  |  1992-12-22  |  5.1 KB  |  116 lines

  1. Newsgroups: comp.windows.x
  2. Path: sparky!uunet!paladin.american.edu!gatech!bloom-beacon!INTERNET!dont-send-mail-to-path-lines
  3. From: maf@dtek.chalmers.se (Martin Forssen)
  4. Subject: New version of teh sunkbd patch available
  5. Message-ID: <9212212148.AA01758@expo.lcs.mit.edu>
  6. Sender: daemon@athena.mit.edu (Mr Background)
  7. Organization: Chalmers University of Technology, Gothenburg Sweden
  8. Date: Mon, 21 Dec 1992 21:48:15 GMT
  9. Lines: 105
  10.  
  11.  
  12.  There is a new version of the sunkbd patch for X11R5 available
  13.  on export.lcs.mit.edu (contrib/sunkbd.921216.tar.Z) (or by email from me).
  14.  Below follows a copy of the CHANGES.kbd file, and for those who don't
  15.  know what the sunkbd patch is a copy of the README.kbd file is
  16.  attached below that. For those of you who has the first version
  17.  installed there is a file (contrib/sunkbd0730-1216.tar.Z) which
  18.  patches your release.
  19.  
  20. *** CHANGES.kbd
  21.  
  22.  * Fixed bug with key 'S' in the Netherland type 5 keyboard.
  23.  
  24.  * Added Igrave, ecircumflex and ediaeresis to make complete ISO8859-1.
  25.  
  26.  * Reordered the compose combinations into ISO8859-1 order.
  27.  
  28.  * Minor rewwite of the keymap constructing code:
  29.     The keymap can't be to big anymore (to many compose combinations cased
  30.     core dump)
  31.     Removed the need for COMPACT_MAP (the holes are filled last).
  32.  
  33.  * Made the compose combinations work backwards to.
  34.  
  35.  * Added code to support autorepeat on/off for individual keys
  36.    (thanks goes to mikeg@ingres.com (Mike Glendinning) for the inspiration)
  37.  
  38.  * Added code and command line options to choose between generating F36
  39.    and F37 vs generating F11 and F12 for the function keys labelled 'F11'
  40.    and 'F12'. The default is to generate F11 and F12.
  41.  
  42.  * Created a human readable table of the compose combinations.
  43.  
  44.  
  45. *** README.kbd
  46.  
  47.  
  48.  Keyboard patch version 921216
  49.  
  50.  This patch enables the Xsun (and XsunMono) server to work with
  51.  other keyboards than type 4 US. It also fixes the Num_Lock and
  52.  Compose keys. It was programmed by maf@dtek.chalmers.se. If you
  53.  have any questions or comments about this piece of code feel free
  54.  to send me an email.
  55.  
  56.   Installation
  57.  
  58.  This patch is distributed as a compressed tar file. When you unpack
  59.  the archive you should get five files: README.kbd (this file),
  60.  sunKeyMap.c, CHANGES.kbd, Compose.list and sunkbd.patch. Readme.kbd,
  61.  CHANGES.kbd, Compose.list and sunKeyMap.c should be installed in
  62.  mit/server/ddx/sun (move the old sunKeyMap.c to some safe backup place).
  63.  You should the apply the patch (patch -p -s <sunkbd.patch) in the
  64.  mit/server/ddx/sun directory.  The patch will touch the following files:
  65.  ./README, ./sun.h, ./sunKbd.c, ./Xsun.man, ../../include/site.h
  66.  and ../../../include/Sunkeysym.h. Now look in sunKeyMap.c and remove any
  67.  unwanted keyboards (to save space) and then just rebuild the server.
  68.  
  69.  
  70.   Known problems
  71.  
  72.  The only problem I know of today is that FrameMaker 3.1X doesn't
  73.  recognize any compose combinations that ends with a shifted or
  74.  alted character. This seems to be a bug in FM and the only workaround
  75.  I have found is to define a macro file for these combinations (they
  76.  are recognized as triggers).
  77.  
  78.  
  79.   How it works
  80.  
  81.  When the server initializes it queries the keyboard for its type and
  82.  layout. If it is anything else than type 4 (note that type 5 keyboards
  83.  say they are type 4) it works as before. If it is a type4 keyboard
  84.  the server finds the correct keycode to keysym mappings. These are
  85.  contained in the file sunKeyMap.c. In this file you can find the
  86.  layout tables for 35 different type 4 layouts. Each of these tables
  87.  occupies about 2.5K in the server and since you probably won't need
  88.  more than one or two different entries you can remove the others through 
  89.  the comments at the top of the file (further instructions is in the
  90.  file). Now the keycodes that are reported when you press any numerical
  91.  key while NumLock is pressed or the final code of a compose combination
  92.  is appended to the table.
  93.  When the user presses a key the server first checks if NumLock is
  94.  active. If it is the server searches a table of the numerical keyboards
  95.  scancodes and if the current keycode is found in there it is transformed
  96.  into another scancode which points to the correct entry in the keycode
  97.  to keysym table. If the user has pressed the compose key the server
  98.  first converts the scancode to a keysym, then it checks if this key is
  99.  part of any legal compose combination if it is it is remembered else
  100.  the compose key is deactivated. In either case the event is swallowed
  101.  unless it was a modifier key. When the final key of the combination
  102.  is pressed the server changes the scancode to one that points to the
  103.  right location and passes the event on to the clients. Observe that
  104.  this entry in the scancode to keycode table has the same value for
  105.  all the combinations of modifier keys. This is since I can't know
  106.  which modifiers are active when the last key is pressed.
  107.  When the server checks for Num_Lock and Compose it actually decodes
  108.  the scancodes it gets to keysyms and the check these. This enables the
  109.  user to remap both Num_Lock and Compose (Multi_key).
  110.  
  111.     /MaF
  112.  
  113. --
  114. Martin Forssen: maf@dtek.chalmers.se or maf@math.chalmers.se
  115. System administrator at math and dtek at Chalmers univ. of technology 
  116.