|
|||||
|
Reference Manual Terms Of Use About A+ Getting A+ A+ Community |
German Keyboards- Courtesy of Edgar M. E. Wermuth
Here's my advice for users with German keyboards, which may help
others, too:
When working with A+ I use a keyboard mapping conforming
to an US layout augmented by the APL characters according to the
A+ conventions. (After some practice the wrong (in my case: German)
labeling of the keyboard will no longer be an obstacle.)
To accustom this to your own configuration and taste
you may use "xmodmap", "xev" and "xkeycaps". Look up the man pages!
(Some information about these X tools can be found, e.g., in
the excellent Unix book by K. H. Rosen, R. R. Rosinski, J. M. Farber,
and D. A. Host (Osborne McGraw-Hill 1996) as well as in the
Linux book by Michael Kofler (Addison-Wesley).)
If you just try the command "xmodmap" you'll get a response like
-------------------------------------------------------------
xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Multi_key (0x6d)
mod1 Meta_L (0x40)
mod2 Num_Lock (0x4d)
mod3 Mode_switch (0x71)
mod4 Super_L (0x73), Super_R (0x74)
mod5 Scroll_Lock (0x4e)
-------------------------------------------------------------
showing your "modifiers" (keys like Control_L, Shift_L, or
Meta_L (Alt_L); L means "Left").
With
xmodmap -pke > keymap.txt
you'll get a text file with your actual keyboard mapping.
Its beginning may look like
------------------------------------------------------------
keycode 8 =
keycode 9 = Escape
keycode 10 = 1 exclam onesuperior exclamdown
keycode 11 = 2 quotedbl twosuperior oneeighth
keycode 12 = 3 section threesuperior sterling
keycode 13 = 4 dollar onequarter currency
keycode 14 = 5 percent onehalf threeeighths
keycode 15 = 6 ampersand threequarters fiveeighths
keycode 16 = 7 slash braceleft seveneighths
keycode 17 = 8 parenleft bracketleft trademark
keycode 18 = 9 parenright bracketright plusminus
keycode 19 = 0 equal braceright degree
keycode 20 = ssharp question backslash questiondown
keycode 21 = acute grave cedilla dead_ogonek
-----------------------------------------------------------
if you have a German keyboard.
With "xev" or "xkeycaps" you can determine the keycodes of your
keyboard's keys. The file
/usr/X11R6/include/X11/keysymdef.h
(for some Linux distributions, the location may be slightly
different) contains all the key symbols which the keys can
be mapped onto.
The syntax is
keycode n = key shift+key mode_switch+key mode_switch+shift+key
for every key. (There need not always be four values on the
right-hand side of the equal sign.)
The file .USkeys in my ~ directory is the following one:
----------------------------------------------------------
keycode 8 =
keycode 9 = Escape
keycode 10 = 1 exclam exclamdown agrave
keycode 11 = 2 at cent ae
keycode 12 = 3 numbersign less ccedilla
keycode 13 = 4 dollar currency egrave
keycode 14 = 5 percent equal division
keycode 15 = 6 asciicircum brokenbar ocircumflex
keycode 16 = 7 ampersand greater aacute
keycode 17 = 8 asterisk diaeresis eth
keycode 18 = 9 parenleft copyright onesuperior
keycode 19 = 0 parenright asciicircum degree
keycode 20 = minus underscore guillemotleft
keycode 21 = equal plus ssharp hyphen
keycode 22 = BackSpace
keycode 23 = Tab
keycode 24 = q Q question questiondown
keycode 25 = w W multiply
keycode 26 = e E Aring aring
keycode 27 = r R Ograve paragraph
keycode 28 = t T asciitilde
keycode 29 = y Y Ugrave acute
keycode 30 = u U Otilde otilde
keycode 31 = i I Eacute eacute
keycode 32 = o O Idiaeresis idiaeresis
keycode 33 = p P asterisk threesuperior
keycode 34 = bracketleft braceleft ucircumflex Ucircumflex
keycode 35 = bracketright braceright yacute Yacute
keycode 36 = Return
keycode 37 = Control_L
keycode 38 = a A Aacute aacute
keycode 39 = s S Oacute threequarters
keycode 40 = d D Adiaeresis adiaeresis
keycode 41 = f F underscore onehalf
keycode 42 = g G Ccedilla ccedilla
keycode 43 = h H Egrave egrave
keycode 44 = j J Ecircumflex ecircumflex
keycode 45 = k K apostrophe section
keycode 46 = l L Igrave igrave
keycode 47 = semicolon colon Ucircumflex onequarter
keycode 48 = apostrophe quotedbl Yacute guillemotright
keycode 49 = grave asciitilde thorn asciitilde
keycode 50 = Shift_L
keycode 51 = backslash bar Udiaeresis udiaeresis
keycode 52 = z Z Uacute uacute
keycode 53 = x X Ooblique oslash
keycode 54 = c C Atilde atilde
keycode 55 = v V Odiaeresis odiaeresis
keycode 56 = b B Acircumflex acircumflex
keycode 57 = n N Icircumflex icircumflex
keycode 58 = m M bar bar
keycode 59 = comma less notsign less
keycode 60 = period greater Udiaeresis registered
keycode 61 = slash question macron question
keycode 62 = Shift_R
keycode 63 = KP_Multiply
keycode 64 = Meta_L
keycode 65 = space
keycode 66 = Caps_Lock
keycode 67 = F1
keycode 68 = F2
keycode 69 = F3
keycode 70 = F4
keycode 71 = F5
keycode 72 = F6
keycode 73 = F7
keycode 74 = F8
keycode 75 = F9
keycode 76 = F10
keycode 77 = Num_Lock
keycode 78 = Scroll_Lock
keycode 79 = KP_Home KP_7
keycode 80 = KP_Up KP_8
keycode 81 = KP_Prior KP_9
keycode 82 = KP_Subtract
keycode 83 = KP_Left KP_4
keycode 84 = KP_Begin KP_5
keycode 85 = KP_Right KP_6
keycode 86 = KP_Add
keycode 87 = KP_End KP_1
keycode 88 = KP_Down KP_2
keycode 89 = KP_Next KP_3
keycode 90 = KP_Insert KP_0
keycode 91 = KP_Delete KP_Decimal
keycode 92 =
keycode 93 =
keycode 94 = less greater bar
keycode 95 = F11
keycode 96 = F12
keycode 97 = Home
keycode 98 = Up
keycode 99 = Prior
keycode 100 = Left
keycode 101 =
keycode 102 = Right
keycode 103 = End
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode 107 = Delete
keycode 108 = KP_Enter
keycode 109 = Multi_key
keycode 110 = Pause Break
keycode 111 = Print Execute
keycode 112 = KP_Divide
keycode 113 = Mode_switch
keycode 114 =
keycode 115 = Super_L
keycode 116 = Super_R
keycode 117 = Menu
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
keycode 128 =
keycode 129 =
keycode 130 =
keycode 131 =
keycode 132 =
keycode 133 =
keycode 134 =
-------------------------------------------------------------------
This file uses the positions of the APL characters in the "Kapl"
fonts as well as their Latin 1 counterparts. (See the A+ "Quick
Reference" documentation.)
Alt_R is the Mode_switch key. (The third and fourth symbols are
used for the A+/APL characters while the first and second ones are
chosen according to an ordinary US layout.) If you have a different
keyboard, only minor changes will be necessary.
I start A+ with the command "aplus". ("a+" starts the program in the
current terminal.)
My .bashrc file contains the lines
------------------------------------------------------------------
alias aplus='xmodmap ~/.USkeys ; xemacs -bg lightyellow -fg
midnightblue -eval "(a-other-window)"&'
alias over='xmodmap ~/.Keys'
------------------------------------------------------------------
The file ".Keys" contains the German mapping for my keyboard.
There seems to be a minor bug in the Lisp code for
the xemacs A+ mode: the APL characters are not displayed in the
Kapl font but in a smaller Latin 1 font. Thus É appears instead
of jota and Ò in place of rho. lacking any Lisp expertise,
I didn't try to figure it out.
And if I try to change the A+ font via the A+ options
menu I get no change whatsoever.
Perhaps there will be a patch soon.
(Or is there a bug in my installation? Maybe my configuration
is too different from the one on which the code was testet.)
For the time being, I use
Emacs.default.attributeFont:
--kapl-screen-r-normal--15-150-72-72-m--iso8859-1
Emacs.italic.attributeFont:
--kapl-screen-r-normal--15-150-72-72-m--iso8859-1
Emacs.italic.attributeForeground: lightblue
in my .Xdefaults file. Thus the mechanism of choosing the fonts at
runtime
is overridden, and it works.
|
||||
|
Thanks to the designers of www.xemacs.org for their inspirational look and feel. |
This page is part of the A+ website
<http://www.aplusdev.org/>
Maintained by webmaster@aplusdev.org Hosted by
This page last modified Mon Aug 5 17:25:42 EDT 2002 © 1992-2008 Morgan Stanley Dean Witter & Co. All rights reserved. |
||||