From owner-freebsd-questions@FreeBSD.ORG Sun Jul 5 20:49:51 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C470D1065670 for ; Sun, 5 Jul 2009 20:49:51 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from mx02.qsc.de (mx02.qsc.de [213.148.130.14]) by mx1.freebsd.org (Postfix) with ESMTP id 68CF28FC14 for ; Sun, 5 Jul 2009 20:49:51 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from r55.edvax.de (port-92-195-31-188.dynamic.qsc.de [92.195.31.188]) by mx02.qsc.de (Postfix) with ESMTP id 02B9E248B8 for ; Sun, 5 Jul 2009 22:49:49 +0200 (CEST) Received: from r55.edvax.de (localhost [127.0.0.1]) by r55.edvax.de (8.14.2/8.14.2) with SMTP id n65Knie2006782 for ; Sun, 5 Jul 2009 22:49:44 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Sun, 5 Jul 2009 22:49:43 +0200 From: Polytropon To: FreeBSD Questions Message-Id: <20090705224943.693740a6.freebsd@edvax.de> Organization: EDVAX X-Mailer: Sylpheed 2.4.7 (GTK+ 2.12.1; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Sun__5_Jul_2009_22_49_43_+0200_piAMCw8ddSRVGOO9" Subject: Num Lock key in X, PF keys, involves xmodmap, xev X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Polytropon List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jul 2009 20:49:52 -0000 This is a multi-part message in MIME format. --Multipart=_Sun__5_Jul_2009_22_49_43_+0200_piAMCw8ddSRVGOO9 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Dear list, since I moved to a new keyboard, I have some trouble. Everything except the Num Lock functionality works fine. Let me explain: The keyboard is a BOSCOM PS/2 keyboard (with 122 keys, intended for 5250 operations on a PC) that contains a keyboard controller, so the keyboard can simply be attached to the PC. THis is how the keyboard looks like: http://www.ioconnections.com/images/products/bos_5250keyboard_black.jpg It's a very nice one, so I want to use it instead of my Sun USB keyboard because it has more and better keys. Think about the IBM model M. Same mechanics. The keyboard can operate in two different modes, which are selected by a jumper inside the keyboard (where the LEDs are located). In "jumper mode", keys operate like their caption (the key cap) indicates it. For example, the keys on the left generate SysRq, Print, Escape and so on. Some of them generate composed characters, this means when I press a key, the keyboard sends a key combination, such as Alt+F3 for the key or Shift+F1 for F13. Quite useless. In "no jumper mode", each key sends a unique keycode. Some keys do not do what their key cap says, but that's no problem because the caps can be re-arranged. And I've got enough space keycaps with very nice captions from other keyboards, so it's no problem to make my own layout be represented correctly by the key caps. This is the mode I need. Using the xev program, I could easily find out which keys generate which keycode, so I made a .xmodmaprc and assigned names to the different keys according to what I intended them to use. For example, F13 .. F24 now are described as F13 .. F24, so they can be assigned several actions by the means of the window manager, i. e. WindowMaker - easy game, e. g. starting programs or issuing a window arrangement command (front, background, roll up, hide, lock screen and so on). On the numerical keypad, I have a comma as well as a dot - in Germany, the comma is the decimal delimiter, so it's not possible to type IPs on the numeric keypad only. But now, I can do things like "192.168.1.1,192.168.1.2" all within the numerical keypad. Now my problem: I can't get the Num Lock to work. First of all, I checked which keycode would be generated when I press the key I want to have as Num Lock - it's the one placed where it should be on the standard 102 keys model, numerical keypad, upper left. This is the xev output when the key is pressed: KeyPress event, serial 27, synthetic NO, window 0x1800001, root 0x73, subw 0x0, time 1285024705, (76,91), root:(355,651), state 0x0, keycode 9 (keysym 0xff7f, Num_Lock), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False The keycode 9 (former Escape, I think) has been assigned to the key symbol Num_Lock by this entry in .xmodmaprc (file attached, I hope): ! Num keycode 9 = Num_Loc The comment, preceeded by "!", states what is on the key cap, to make finding them easier. The problem is: Pressing this key doesn't change the Num state. So I checked "man xmodmap" and found out that there are modes that can be changed by certain keys. % xmodmap xmodmap: up to 3 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x6d) mod1 Alt_L (0x40), Meta_L (0x9c) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x7f), Hyper_L (0x80) mod5 Mode_switch (0x5d), ISO_Level3_Shift (0x71), ISO_Level3_Shift (0x7c) This output states that Num_Lock toggles "mod2" - is this the Num mode? I checked it through this command: % xmodmap -e "add mod2 = Num_Lock" Ha! Pressing this key toggles Num now. Fine. No, not fine. Problem: The keys on the left as well as the 2nd row of function keys does not work anymore. If I switch off Num, they work again. Huh? I didn't have that on the Sun keyboard, there using the keys on the left (which I assigned F13 .. F27) always worked, no matter if Num was on or off. However, xev tells me that the correct symbols are emitted when I press the key, but the actions that have been assigned don't work anymore. So, for example, F13 doesn't launch Opera anymore. KeyPress event, serial 27, synthetic NO, window 0x1800001, root 0x73, subw 0x0, time 1285459063, (175,3), root:(362,537), state 0x10, keycode 181 (keysym 0xffca, F13), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False But when I turn Num off and press F13, it works again. And as I said, I didn't have such kind of behaviour with the Sun model. Basically, I'm doing the same. What am I doing wrong here? What am I missing? Ideas, anyone? =^_^= PS. Follow-up question: What xmodmap is for X, that is WHAT for the console (text mode)? Would be nice to make the keyboard work properly at VTs, too. -- Polytropon >From Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...Fr --Multipart=_Sun__5_Jul_2009_22_49_43_+0200_piAMCw8ddSRVGOO9 Content-Type: text/plain; name=".xmodmaprc" Content-Disposition: attachment; filename=".xmodmaprc" Content-Transfer-Encoding: base64 ISBFU0MgLyBEZWZGDQprZXljb2RlIDEzNCA9IEVzY2FwZQ0KDQohIEEtQWJmIC8gQWJydWYNCmtl eWNvZGUgMjEwID0gRjI1DQoNCiEgUHNBdXMNCmtleWNvZGUgMjE5ID0gRjI2DQoNCiEgTGluaWUg LyBQb3MxDQprZXljb2RlIDExMSA9IEYyNw0KDQohIFBhdXNlIC8gRS1M9g0Ka2V5Y29kZSAyMjAg PSBGMjgNCg0KISBiU0RlZiAvIERyRGVmDQprZXljb2RlIDIyMSA9IEYyOQ0KDQohIEVpbmcgTPZz Y2gNCmtleWNvZGUgMTEwID0gRjMwDQoNCiEgQmVkLWhpbGZlIC8gSGV4DQprZXljb2RlIDIwNSA9 IEYzMQ0KDQohIEF1ZnogTW9kZSAvIFBhdXNlDQprZXljb2RlIDIwNyA9IEYzMg0KDQohIFdpZWRn YWJlIC8gVGVzdA0Ka2V5Y29kZSAyMDQgPSBGMzMNCg0KISBeYQ0Ka2V5Y29kZSAxNzAgPSBJbnNl cnQNCg0KISBJPC0gLyBab29tDQprZXljb2RlIDk5ID0gSG9tZQ0KDQohIEJpbGQgXg0Ka2V5Y29k ZSAxMDUgPSBQcmlvcg0KDQohIGGwIC8gYWFhsA0Ka2V5Y29kZSAxMDMgPSBEZWxldGUNCg0KISAt PkkNCmtleWNvZGUgMTA2ID0gRW5kDQoNCiEgQmlsZCB2DQprZXljb2RlIDEwNyA9IE5leHQNCg0K ISBeDQprZXljb2RlIDk4ID0gVXANCg0KISA8LQ0Ka2V5Y29kZSAxMDAgPSBMZWZ0DQoNCiEgdg0K a2V5Y29kZSA5NyA9IERvd24NCg0KISAtPg0Ka2V5Y29kZSAxMDIgPSBSaWdodA0KDQohIA0Ka2V5 Y29kZSAxMDQgPSBEb3duDQoNCiEgTnVtDQprZXljb2RlIDkgPSBOdW1fTG9jaw0KDQohIC8NCmtl eWNvZGUgNzggPSBLUF9EaXZpZGUNCg0KISAqDQprZXljb2RlIDYzID0gS1BfTXVsdGlwbHkNCg0K ISAtDQprZXljb2RlIDExMiA9IEtQX1N1YnRyYWN0DQoNCiEgLg0Ka2V5Y29kZSA4MiA9IHBlcmlv ZA0KDQohIDwtSg0Ka2V5Y29kZSA4NiA9IEtQX0FkZA0KDQohIERhdGVuIEZyZWlnYWJlDQprZXlj b2RlIDEwOCA9IEtQX0VudGVyDQoNCiEgQW5mb3JkIC8gVW5n/Gx0DQprZXljb2RlIDE4MSA9IEYx Mw0KDQohIE5hY2hyaWNodCAvIEFudHcNCmtleWNvZGUgMTI2ID0gRjE0DQoNCiEgRm10IFdlY2hz IC8gSW5zdHINCmtleWNvZGUgMTgyID0gRjE1DQoNCiEgWmVpbGUganVzdA0Ka2V5Y29kZSAxOTAg PSBGMTYNCg0KISBEcnVjayAvIFMtQWJmDQprZXljb2RlIDE5MSA9IFByaW50DQoNCiEgRkF1c1cg QXVzdyBSb2xsIC8gVGVzdA0Ka2V5Y29kZSAxOTIgPSBTY3JvbGxfTG9jaw0KDQohIFBhdXNlIC8g VW50YnINCmtleWNvZGUgMTkzID0gUGF1c2UNCg0KISBEdXANCmtleWNvZGUgMTk4ID0gRjIwDQoN CiEgU3VjaA0Ka2V5Y29kZSAxOTkgPSBGMjENCg0KISBWZXJzIC8gS29wDQprZXljb2RlIDIwMCA9 IEYyMg0KDQohIEhvbGVuDQprZXljb2RlIDIwMSA9IEYyMw0KDQohIFp1DQprZXljb2RlIDIwMyA9 IEYyNA0KDQoNCg== --Multipart=_Sun__5_Jul_2009_22_49_43_+0200_piAMCw8ddSRVGOO9--