Re: Linux,German Keybord #1 : Massive Key Problems
- To: mathgroup at smc.vnet.net
- Subject: [mg3856] Re: [mg3795] Linux,German Keybord #1 : Massive Key Problems
- From: Timo Felbinger <felbing at spock.physik.uni-konstanz.de>
- Date: Sat, 4 May 1996 02:12:31 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Andreas Steffan wrote: >I'm using a "PC 102 key keyboard #1 (Linux/XFree86 German layout) keyboard", >and I wonder why I can't make "Mode_switch (0x71)" become the Modifier 2. >Therefore I can't generate "[","]","{" etc. in the XFrontend under Linux. >This is really annoying, making the XFrontend unusuable. =:-( >In "X Environment Information" I tried the following settings: This seems to be a common problem to German users of Mathematica for Linux; I and a friend of mine experienced exactly the same problem. We asked WRI's support hotline for assistance; in the time it took them to respond, I found a solution on my own, so I can suggest two quite different solutions: This is the original reply of WRI: ============(citation starts here)================ 1. Use the program "xev" to find out the keysym names for the characters to be configured. For Example: character keysym --------- --------- { braceleft [ bracketleft ] bracketright } braceright 2. Now decide which key will be mapped to which characters. Here, I use the Alt_GR key with the characters "7", "8", "9", and "0", to produce "{", "[", "]" and "}", respectively. 3. Select the "X Environment Information" option from the Mathematica "Help" menu, and use the "Find Keys and Modifiers" option to find out which Mod key the Alt_GR key is set to. In this example Alt_GR key is set to Mod2 - if it is not currently set to any Mod key you can set it here. 4. Add a line to the XMathematica file in the ~Mathematica/FrontEnd directory or in your home directory, if you have copied this file to your home directory, for each key. Currently the file will have an entry like *Notebook.translations: #override \n\ <Btn1Up>: selection-put() \n\ <Btn1Down>: selection-get() The new lines can be added as follows: *Notebook.translations: #override \n\ <Btn1Up>: selection-put() \n\ <Btn1Down>: selection-get() \n\ Mod2<Key>7: key("braceleft") \n\ Mod2<Key>8: key("bracketleft") \n\ Mod2<Key>9: key("bracketright") \n\ Mod2<Key>0: key("braceright") This should set the key combinations Alt_GR + "7", "8", "9" and "0" to be the characters "{", "[", "]" and "}". Let me know if I can be of further assistance. Tom Zeller Wolfram Research Technical Support - Student Versions =================(end of citation)==================================== I didn't try this approach, but it looks quite plausible. The same problem can also be solved by adjusting your keyboard mappings via xmodmap; call xmodmap (for convenience, insert the call into your .xinitrc) with an input file containing the following lines: ======================(cut here)====================================== keycode 0x10 = 7 slash braceleft NoSymbol NoSymbol braceleft keycode 0x11 = 8 parenleft bracketleft NoSymbol NoSymbol bracketleft keycode 0x12 = 9 parenright bracketright NoSymbol NoSymbol bracketright keycode 0x13 = 0 equal braceright NoSymbol NoSymbol braceright keycode 0x14 = ssharp question backslash NoSymbol NoSymbol backslash keycode 0x18 = q Q at NoSymbol NoSymbol at keycode 0x23 = plus asterisk asciitilde NoSymbol NoSymbol asciitilde keycode 0x2F = odiaeresis Odiaeresis braceleft NoSymbol NoSymbol braceleft keycode 0x30 = adiaeresis Adiaeresis braceright NoSymbol NoSymbol braceright keycode 0x5E = less greater bar NoSymbol NoSymbol bar keycode 0x40 = Meta_L keycode 0x71 = Alt_R clear Shift clear Lock clear Control clear Mod1 clear Mod2 clear Mod3 clear Mod4 clear Mod5 add Shift = Shift_L Shift_R add Lock = Caps_Lock add Control = Control_L Control_R add Mod1 = Meta_L add Mod2 = Alt_R Mode_switch add Mod5 = Scroll_Lock ======================(cut here)============================================== If you are already using some modified keyboard mapping, you can use xkeycaps to output your current settings to a file, add or modify the above lines in this file, and then use it as input to xmodmap. This will turn the left Alt-key into a Meta-Key (in the sense of Emacs), and at the same time a Mod1-key (in the sense of Mathematica). The right Alt_GR-key becomes an Alt-key (in Emacs) and a Mod2-key (in Mathematica), and it will produce within Mathematica all characters which are normally entered using Alt_GR on a German keyboard (unless I forgot one of them). The curly brackets can also be entered as Alt_GR-oe and Alt_GR-ae (German umlaute oe and ae), which I find much more convenient than Alt_GR-7 and Alt_GR-0. The drawback is that you have to teach emacs to accept "{", "[" and so on via Alt instead of ModeSwitch; I haven't done this yet, but it should not be a problem. In exchange, this will give you Alt as an additional modifier (besides Control and Meta) within emacs. I have not yet tried to get all these special German characters to work within Mathematica; actually, I don't really miss them. Timo Felbinger timo.felbinger at uni-konstanz.de ==== [MESSAGE SEPARATOR] ====