Dotan Cohen posted on Tue, 10 May 2011 15:44:55 +0300 as excerpted: > I have several stumbling blocks, but here is one: > In a US keyboard variant called "Noah" I need to swap the locations of > the "B" and Caps_Lock keys. I added this to the end of > usr/share/X11/xkb/symbols/us: > xkb_symbols "noah" { > name[Group1]= "USA - Noah Ergonomic"; > include "pc(noah)" > key <CAPS> { [ b, B ] }; > key <AB05> { [ Caps_Lock ] }; > }; > > And I added this to the end of /usr/share/X11/xkb/symbols/pc: > partial modifier_keys xkb_symbols "noah" { > modifier_map Lock { <AB05> }; > }; > > However, now in the regular variant (not Noah) the B key is an > additional Caps_Lock key! So typing the word "keyboard" returns > "keybOARD". How can I restrict the redefined Caps_Lock key to only > modify the Noah variant? If you're trying to configure different models of physical keyboard, that's accomplished thru xorg.conf(.d) hotplugging configuration, these days (since xorg-server-1.8). You can even plug multiple keyboards in at once and have them each IDed and assigned the appropriate variants as necessary. =:^) See the xorg.conf manpage, InputClass section. The various settings it matches against can be found using lsusb (and see its manpage). That's assuming USB keyboards, of course, I don't know how one would get info on ps2 keyboards, but presumably if you're still using one, it stays plugged into that port, so association with the ps2 port would probably do it by itself. Not that I know for sure how to match that, but I could probably figure it out with a bit of experimentation and documentation reading. (That's one nice thing about buses like USB and PCI/PCIE. They were designed for plug-N-play, so there's all sorts of info about each device and its capacities detectable. The legacy ps/2 mouse and keyboard ports, serial and parallel ports, and the REAL legacy AT keyboard port, don't as commonly have this sort of information available, tho in some cases characteristics of a device can be matched to known devices in a table lookup.) One InputClass section is created per keyboard (or pointing device) that you need treated separately, with one or more "general" sections applying to more than one keyboard, possible as well. In the event more than one section matches a specific device and the same setting is set in each, the last one wins, so you can set general stuff in a single section, then set specific stuff in later sections (in files appearing later in the sequence if using multiple files in xorg.conf.d). If instead you're wanting different settings for the same device, perhaps for different users, that's a bit different. xmodmap can be used there, at runtime, either set to run when a user logs in, or setup using several scripts that can be invoked as needed to switch settings. However, I should mention that I've never actually used xmodmap myself, only read about it. There's a manpage for it, tho... There's also an app (referred to in the see also section of the xmodmap manpage) called setxkbmap, but I don't have it or its manpage installed and have never used it, so... However, it appears that multiple physically different devices are what you're doing, so the xorg.conf(.d) InputClass section stuff should be just what you're looking for. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman ___________________________________________________ This message is from the kde mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.