Welcome to Soft32 Linux Forums!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

Bug#261088: Suggestion: xkb rules for Thinkpad extra keys

 
   Soft32 Home -> Linux -> X - Debian RSS
Next:  Bug#261081: xserver-xfree86: [radeon] dpms doesn'..  
Author Message
Hile Tuohela

External


Since: Jul 23, 2004
Posts: 1



(Msg. 1) Posted: Fri Jul 23, 2004 1:00 pm
Post subject: Bug#261088: Suggestion: xkb rules for Thinkpad extra keys
Archived from groups: linux>debian>bugs>dist, others (more info?)

Package: xlibs
Version: 4.3.0.dfsg.1-6
Severity: wishlist
Tags: patch

I have written a small set of xkb rules to enable the extra keys
on thinkpad laptops (keysyms 233 and 234). The rules implement
new keyboard model 'thinkpad'.

The files are available with a html README from
http://hile.dyndns.org/xkb-thinkpad.tgz

You can probably just run diff for the files under xkb directory,
the changes are quite trivial. It would be great if these configs
would end up being part of the packages and upstream.

There might be problems with the rules and the fact these rules
replace the pc101,pc102 and other 'model' parameters in XF86Config-4,
works for me at least with finnish keyboard.

I think my mapping of 'Prev/Next_Virtual_Screen' is good to not mix
the keys with any other, possibly used keys, and most likely map
nicely to the tasks most people would do with these keys now: I see
no other use for these keys except virtual desktop switching and
window moving.

*hile*

-- Package-specific info:
Keyboard-related contents of XFree86 X server log file
/var/log/XFree86.0.log:
(==) Using config file: "/etc/X11/XF86Config-4"
(==) ServerLayout "Default Layout"
(**) |-->Screen "Default Screen" (0)
(**) | |-->Monitor "Internal LCD"
(**) | |-->Device "ATI Radeon Mobility 9000 M9"
(**) |-->Input Device "Generic Keyboard"
(**) Option "XkbRules" "xfree86"
(**) XKB: rules: "xfree86"
(**) Option "XkbModel" "thinkpad"
(**) XKB: model: "thinkpad"
(**) Option "XkbLayout" "fi"
(**) XKB: layout: "fi"
(**) Option "XkbOptions" "ctrl:nocaps"
(**) XKB: options: "ctrl:nocaps"
(==) Keyboard: CustomKeycode disabled
(**) |-->Input Device "Configured Mouse"
(**) |-->Input Device "Generic Mouse"
(WW) The directory "/usr/lib/X11/fonts/cyrillic" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/lib/X11/fonts/CID" does not exist.
--
(II) RADEON(0): Direct rendering enabled
(==) RandR enabled
(II) Initializing built-in extension MIT-SHM
(II) Initializing built-in extension XInputExtension
(II) Initializing built-in extension XTEST
(II) Initializing built-in extension XKEYBOARD
(II) Initializing built-in extension LBX
(II) Initializing built-in extension XC-APPGROUP
(II) Initializing built-in extension SECURITY
(II) Initializing built-in extension XINERAMA
(II) Initializing built-in extension XFree86-Bigfont
(II) Initializing built-in extension RENDER
(II) Initializing built-in extension RANDR
(II) Keyboard "Generic Keyboard" handled by legacy driver
(**) Option "Protocol" "PS/2"
(**) Configured Mouse: Protocol: "PS/2"
(**) Option "CorePointer"
(**) Configured Mouse: Core Pointer
(**) Option "Device" "/dev/psaux"

Keyboard-related contents of XFree86 X server log file
/var/log/XFree86.1.log:
(++) Using config file: "/etc/X11/XF86Config-4-fglrx"
(==) ServerLayout "Default Layout"
(**) |-->Screen "Default Screen" (0)
(**) | |-->Monitor "Generic Monitor"
(**) | |-->Device "ATI Radeon Mobility 9000 M9"
(**) |-->Input Device "Generic Keyboard"
(**) Option "XkbRules" "xfree86"
(**) XKB: rules: "xfree86"
(**) Option "XkbModel" "pc105"
(**) XKB: model: "pc105"
(**) Option "XkbLayout" "fi"
(**) XKB: layout: "fi"
(**) Option "XkbOptions" "ctrl:nocaps"
(**) XKB: options: "ctrl:nocaps"
(==) Keyboard: CustomKeycode disabled
(**) |-->Input Device "Configured Mouse"
(**) |-->Input Device "Generic Mouse"
(WW) The directory "/usr/lib/X11/fonts/cyrillic" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/lib/X11/fonts/CID" does not exist.
--
(==) RandR enabled
(II) Setting vga for screen 0.
(II) Initializing built-in extension MIT-SHM
(II) Initializing built-in extension XInputExtension
(II) Initializing built-in extension XTEST
(II) Initializing built-in extension XKEYBOARD
(II) Initializing built-in extension LBX
(II) Initializing built-in extension XC-APPGROUP
(II) Initializing built-in extension SECURITY
(II) Initializing built-in extension XINERAMA
(II) Initializing built-in extension XFree86-Bigfont
(II) Initializing built-in extension RENDER
(II) Initializing built-in extension RANDR
(II) Keyboard "Generic Keyboard" handled by legacy driver
(**) Option "Protocol" "PS/2"
(**) Configured Mouse: Protocol: "PS/2"
(**) Option "CorePointer"
(**) Configured Mouse: Core Pointer
(**) Option "Device" "/dev/psaux"

XFree86 X server log files on system:
-rw-r--r-- 1 root root 35228 2004-07-03 16:09 /var/log/XFree86.1.log
-rw-r--r-- 1 root root 163322 2004-07-23 18:12 /var/log/XFree86.0.log

Compiled XKB description for X server ":0.0":
xkb_keymap {
xkb_keycodes "xfree86+aliases(qwerty)" {
minimum = 8;
maximum = 255;
<ESC> = 9;
<AE01> = 10;
<AE02> = 11;
<AE03> = 12;
<AE04> = 13;
<AE05> = 14;
<AE06> = 15;
<AE07> = 16;
<AE08> = 17;
<AE09> = 18;
<AE10> = 19;
<AE11> = 20;
<AE12> = 21;
<BKSP> = 22;
<TAB> = 23;
<AD01> = 24;
<AD02> = 25;
<AD03> = 26;
<AD04> = 27;
<AD05> = 28;
<AD06> = 29;
<AD07> = 30;
<AD08> = 31;
<AD09> = 32;
<AD10> = 33;
<AD11> = 34;
<AD12> = 35;
<RTRN> = 36;
<LCTL> = 37;
<AC01> = 38;
<AC02> = 39;
<AC03> = 40;
<AC04> = 41;
<AC05> = 42;
<AC06> = 43;
<AC07> = 44;
<AC08> = 45;
<AC09> = 46;
<AC10> = 47;
<AC11> = 48;
<TLDE> = 49;
<LFSH> = 50;
<BKSL> = 51;
<AB01> = 52;
<AB02> = 53;
<AB03> = 54;
<AB04> = 55;
<AB05> = 56;
<AB06> = 57;
<AB07> = 58;
<AB08> = 59;
<AB09> = 60;
<AB10> = 61;
<RTSH> = 62;
<KPMU> = 63;
<LALT> = 64;
<SPCE> = 65;
<CAPS> = 66;
<FK01> = 67;
<FK02> = 68;
<FK03> = 69;
<FK04> = 70;
<FK05> = 71;
<FK06> = 72;
<FK07> = 73;
<FK08> = 74;
<FK09> = 75;
<FK10> = 76;
<NMLK> = 77;
<SCLK> = 78;
<KP7> = 79;
<KP8> = 80;
<KP9> = 81;
<KPSU> = 82;
<KP4> = 83;
<KP5> = 84;
<KP6> = 85;
<KPAD> = 86;
<KP1> = 87;
<KP2> = 88;
<KP3> = 89;
<KP0> = 90;
<KPDL> = 91;
<SYRQ> = 92;
<MDSW> = 93;
<LSGT> = 94;
<FK11> = 95;
<FK12> = 96;
<HOME> = 97;
<UP> = 98;
<PGUP> = 99;
<LEFT> = 100;
<RGHT> = 102;
<END> = 103;
<DOWN> = 104;
<PGDN> = 105;
<INS> = 106;
<DELE> = 107;
<KPEN> = 108;
<RCTL> = 109;
<PAUS> = 110;
<PRSC> = 111;
<KPDV> = 112;
<RALT> = 113;
<BRK> = 114;
<LWIN> = 115;
<RWIN> = 116;
<MENU> = 117;
<FK13> = 118;
<FK14> = 119;
<FK15> = 120;
<FK16> = 121;
<FK17> = 122;
<KPDC> = 123;
<LVL3> = 124;
<ALT> = 125;
<KPEQ> = 126;
<SUPR> = 127;
<HYPR> = 128;
<XFER> = 129;
<I02> = 130;
<NFER> = 131;
<I04> = 132;
<AE13> = 133;
<I06> = 134;
<I07> = 135;
<I08> = 136;
<I09> = 137;
<I0A> = 138;
<I0B> = 139;
<I0C> = 140;
<I0D> = 141;
<I0E> = 142;
<I0F> = 143;
<I10> = 144;
<I11> = 145;
<I12> = 146;
<I13> = 147;
<I14> = 148;
<I15> = 149;
<I16> = 150;
<I17> = 151;
<I18> = 152;
<I19> = 153;
<I1A> = 154;
<I1B> = 155;
<META> = 156;
<I1E> = 158;
<I1F> = 159;
<I20> = 160;
<I21> = 161;
<I22> = 162;
<I23> = 163;
<I24> = 164;
<I25> = 165;
<I26> = 166;
<I27> = 167;
<I28> = 168;
<I29> = 169;
<I2B> = 171;
<I2C> = 172;
<I2D> = 173;
<I2E> = 174;
<I2F> = 175;
<I30> = 176;
<I31> = 177;
<I32> = 178;
<I33> = 179;
<I34> = 180;
<I39> = 185;
<I3A> = 186;
<I3B> = 187;
<I3C> = 188;
<I42> = 194;
<I43> = 195;
<I44> = 196;
<I45> = 197;
<I4A> = 202;
<I54> = 212;
<I55> = 213;
<I56> = 214;
<I57> = 215;
<I58> = 216;
<I59> = 217;
<I5A> = 218;
<I5E> = 222;
<I5F> = 223;
<I60> = 224;
<I61> = 225;
<I62> = 226;
<I63> = 227;
<I64> = 228;
<I65> = 229;
<I66> = 230;
<I67> = 231;
<I68> = 232;
<I69> = 233;
<I6A> = 234;
<I6B> = 235;
<I6C> = 236;
<I6D> = 237;
<I6E> = 238;
<I6F> = 239;
<I70> = 240;
<I71> = 241;
<I72> = 242;
<I73> = 243;
<I74> = 244;
<I75> = 245;
<I76> = 246;
<I77> = 247;
<I78> = 248;
<I79> = 249;
<I7A> = 250;
<I7B> = 251;
<I7C> = 252;
<I7D> = 253;
<I7E> = 254;
<I7F> = 255;
indicator 1 = "Caps Lock";
indicator 2 = "Num Lock";
indicator 3 = "Scroll Lock";
virtual indicator 4 = "Shift Lock";
virtual indicator 5 = "Group 2";
virtual indicator 6 = "Mouse Keys";
alias <HZTG> = <TLDE>;
alias <HKTG> = <FK15>;
alias <AB11> = <KPDC>;
alias <AC12> = <BKSL>;
alias <I01> = <XFER>;
alias <I03> = <NFER>;
alias <I05> = <AE13>;
alias <ALGR> = <RALT>;
alias <LatQ> = <AD01>;
alias <LatW> = <AD02>;
alias <LatE> = <AD03>;
alias <LatR> = <AD04>;
alias <LatT> = <AD05>;
alias <LatY> = <AD06>;
alias <LatU> = <AD07>;
alias <LatI> = <AD08>;
alias <LatO> = <AD09>;
alias <LatP> = <AD10>;
alias <LatA> = <AC01>;
alias <LatS> = <AC02>;
alias <LatD> = <AC03>;
alias <LatF> = <AC04>;
alias <LatG> = <AC05>;
alias <LatH> = <AC06>;
alias <LatJ> = <AC07>;
alias <LatK> = <AC08>;
alias <LatL> = <AC09>;
alias <LatZ> = <AB01>;
alias <LatX> = <AB02>;
alias <LatC> = <AB03>;
alias <LatV> = <AB04>;
alias <LatB> = <AB05>;
alias <LatN> = <AB06>;
alias <LatM> = <AB07>;
};

xkb_types "complete" {

virtual_modifiers NumLock,Alt,LevelThree,AltGr,Meta,Super,Hyper,ScrollLock;

type "ONE_LEVEL" {
modifiers= none;
level_name[Level1]= "Any";
};
type "TWO_LEVEL" {
modifiers= Shift;
map[Shift]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
};
type "ALPHABETIC" {
modifiers= Shift+Lock;
map[Shift]= Level2;
map[Lock]= Level1;
preserve[Lock]= Lock;
level_name[Level1]= "Base";
level_name[Level2]= "Caps";
};
type "KEYPAD" {
modifiers= Shift+NumLock;
map[Shift]= Level2;
map[NumLock]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
};
type "SHIFT+ALT" {
modifiers= Shift+Alt;
map[Shift+Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Shift+Alt";
};
type "PC_BREAK" {
modifiers= Control;
map[Control]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Control";
};
type "PC_SYSRQ" {
modifiers= Alt;
map[Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Alt";
};
type "CTRL+ALT" {
modifiers= Control+Alt;
map[Control+Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Ctrl+Alt";
};
type "THREE_LEVEL" {
modifiers= Shift+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Level3";
};
type "FOUR_LEVEL" {
modifiers= Shift+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
type "FOUR_LEVEL_ALPHABETIC" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level3;
preserve[Lock+LevelThree]= Lock;
map[Shift+Lock+LevelThree]= Level3;
map[Lock]= Level1;
preserve[Lock]= Lock;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Shift Alt";
};
type "FOUR_LEVEL_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
map[Shift]= Level2;
map[NumLock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[NumLock+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "Alt Base";
level_name[Level4]= "Alt Number";
};
};

xkb_compatibility "complete" {

virtual_modifiers NumLock,Alt,LevelThree,AltGr,Meta,Super,Hyper,ScrollLock;

interpret.useModMapMods= AnyLevel;
interpret.repeat= False;
interpret.locking= False;
interpret ISO_Level2_Latch+Exactly(Shift) {
useModMapMods=level1;
action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
};
interpret Shift_Lock+AnyOf(Shift+Lock) {
action= LockMods(modifiers=Shift);
};
interpret Num_Lock+AnyOf(all) {
virtualModifier= NumLock;
action= LockMods(modifiers=NumLock);
};
interpret ISO_Lock+AnyOf(all) {
action= ISOLock(modifiers=modMapMods,affect=all);
};
interpret ISO_Level3_Shift+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= SetMods(modifiers=LevelThree,clearLocks);
};
interpret ISO_Level3_Latch+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
};
interpret ISO_Level3_Lock+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= LockMods(modifiers=LevelThree);
};
interpret Alt_L+AnyOf(all) {
virtualModifier= Alt;
useModMapMods=level1;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Alt_R+AnyOf(all) {
virtualModifier= Alt;
useModMapMods=level1;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Meta_L+AnyOf(all) {
virtualModifier= Meta;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Meta_R+AnyOf(all) {
virtualModifier= Meta;
useModMapMods=level1;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Super_L+AnyOf(all) {
virtualModifier= Super;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Super_R+AnyOf(all) {
virtualModifier= Super;
useModMapMods=level1;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Hyper_L+AnyOf(all) {
virtualModifier= Hyper;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Hyper_R+AnyOf(all) {
virtualModifier= Hyper;
useModMapMods=level1;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Scroll_Lock+AnyOf(all) {
virtualModifier= ScrollLock;
action= LockMods(modifiers=modMapMods);
};
interpret Mode_switch+AnyOfOrNone(all) {
virtualModifier= AltGr;
useModMapMods=level1;
action= SetGroup(group=+1);
};
interpret ISO_Level3_Shift+AnyOfOrNone(all) {
action= SetMods(modifiers=LevelThree,clearLocks);
};
interpret ISO_Level3_Latch+AnyOfOrNone(all) {
action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
};
interpret ISO_Level3_Lock+AnyOfOrNone(all) {
action= LockMods(modifiers=LevelThree);
};
interpret ISO_Group_Latch+AnyOfOrNone(all) {
virtualModifier= AltGr;
useModMapMods=level1;
action= LatchGroup(group=2);
};
interpret ISO_Next_Group+AnyOfOrNone(all) {
virtualModifier= AltGr;
useModMapMods=level1;
action= LockGroup(group=+1);
};
interpret ISO_Prev_Group+AnyOfOrNone(all) {
virtualModifier= AltGr;
useModMapMods=level1;
action= LockGroup(group=-1);
};
interpret ISO_First_Group+AnyOfOrNone(all) {
action= LockGroup(group=1);
};
interpret ISO_Last_Group+AnyOfOrNone(all) {
action= LockGroup(group=2);
};
interpret KP_1+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+1);
};
interpret KP_End+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+1);
};
interpret KP_2+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=+1);
};
interpret KP_Down+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=+1);
};
interpret KP_3+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+1);
};
interpret KP_Next+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+1);
};
interpret KP_4+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+0);
};
interpret KP_Left+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+0);
};
interpret KP_6+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+0);
};
interpret KP_Right+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+0);
};
interpret KP_7+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=-1);
};
interpret KP_Home+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=-1);
};
interpret KP_8+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=-1);
};
interpret KP_Up+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=-1);
};
interpret KP_9+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=-1);
};
interpret KP_Prior+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=-1);
};
interpret KP_5+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default);
};
interpret KP_Begin+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default);
};
interpret KP_F2+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=1);
};
interpret KP_Divide+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=1);
};
interpret KP_F3+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=2);
};
interpret KP_Multiply+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=2);
};
interpret KP_F4+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=3);
};
interpret KP_Subtract+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=3);
};
interpret KP_Separator+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default,count=2);
};
interpret KP_Add+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default,count=2);
};
interpret KP_0+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=lock);
};
interpret KP_Insert+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=lock);
};
interpret KP_Decimal+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=unlock);
};
interpret KP_Delete+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=unlock);
};
interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
action= PtrBtn(button=default);
};
interpret Pointer_Button1+AnyOfOrNone(all) {
action= PtrBtn(button=1);
};
interpret Pointer_Button2+AnyOfOrNone(all) {
action= PtrBtn(button=2);
};
interpret Pointer_Button3+AnyOfOrNone(all) {
action= PtrBtn(button=3);
};
interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
action= PtrBtn(button=default,count=2);
};
interpret Pointer_DblClick1+AnyOfOrNone(all) {
action= PtrBtn(button=1,count=2);
};
interpret Pointer_DblClick2+AnyOfOrNone(all) {
action= PtrBtn(button=2,count=2);
};
interpret Pointer_DblClick3+AnyOfOrNone(all) {
action= PtrBtn(button=3,count=2);
};
interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
action= LockPtrBtn(button=default,affect=both);
};
interpret Pointer_Drag1+AnyOfOrNone(all) {
action= LockPtrBtn(button=1,affect=both);
};
interpret Pointer_Drag2+AnyOfOrNone(all) {
action= LockPtrBtn(button=2,affect=both);
};
interpret Pointer_Drag3+AnyOfOrNone(all) {
action= LockPtrBtn(button=3,affect=both);
};
interpret Pointer_EnableKeys+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeys);
};
interpret Pointer_Accelerate+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeysAccel);
};
interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
action= SetPtrDflt(affect=button,button=+1);
};
interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
action= SetPtrDflt(affect=button,button=-1);
};
interpret AccessX_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AccessXKeys);
};
interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AccessXFeedback);
};
interpret RepeatKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=RepeatKeys);
};
interpret SlowKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=SlowKeys);
};
interpret BounceKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=BounceKeys);
};
interpret StickyKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=StickyKeys);
};
interpret MouseKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeys);
};
interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeysAccel);
};
interpret Overlay1_Enable+AnyOfOrNone(all) {
action= LockControls(controls=Overlay1);
};
interpret Overlay2_Enable+AnyOfOrNone(all) {
action= LockControls(controls=Overlay2);
};
interpret AudibleBell_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AudibleBell);
};
interpret Terminate_Server+AnyOfOrNone(all) {
action= Terminate();
};
interpret Alt_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Alt,clearLocks);
};
interpret Alt_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Alt,clearLocks);
};
interpret Meta_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Meta,clearLocks);
};
interpret Meta_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Alt,clearLocks);
};
interpret Super_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Super,clearLocks);
};
interpret Super_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Super,clearLocks);
};
interpret Hyper_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Hyper,clearLocks);
};
interpret Hyper_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Hyper,clearLocks);
};
interpret XF86_Switch_VT_1+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=1,!same);
};
interpret XF86_Switch_VT_2+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=2,!same);
};
interpret XF86_Switch_VT_3+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=3,!same);
};
interpret XF86_Switch_VT_4+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=4,!same);
};
interpret XF86_Switch_VT_5+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=5,!same);
};
interpret XF86_Switch_VT_6+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=6,!same);
};
interpret XF86_Switch_VT_7+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=7,!same);
};
interpret XF86_Switch_VT_8+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=8,!same);
};
interpret XF86_Switch_VT_9+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=9,!same);
};
interpret XF86_Switch_VT_10+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=10,!same);
};
interpret XF86_Switch_VT_11+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=11,!same);
};
interpret XF86_Switch_VT_12+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=12,!same);
};
interpret XF86_Ungrab+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x55,data[1]=0x6e,data[2]=0x67,data[3]=0x72,data[4]=0x61,data[5]=0x62,data[6]=0x00);
};
interpret XF86_ClearGrab+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x43,data[1]=0x6c,data[2]=0x73,data[3]=0x47,data[4]=0x72,data[5]=0x62,data[6]=0x00);
};
interpret XF86_Next_VMode+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
};
interpret XF86_Prev_VMode+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
};
interpret Any+Exactly(Lock) {
action= LockMods(modifiers=Lock);
};
interpret Any+AnyOf(all) {
action= SetMods(modifiers=modMapMods,clearLocks);
};
group 2 = AltGr;
group 3 = AltGr;
group 4 = AltGr;
indicator "Caps Lock" {
!allowExplicit;
whichModState= locked;
modifiers= Lock;
};
indicator "Num Lock" {
!allowExplicit;
whichModState= locked;
modifiers= NumLock;
};
indicator "Scroll Lock" {
whichModState= locked;
modifiers= ScrollLock;
};
indicator "Shift Lock" {
!allowExplicit;
whichModState= locked;
modifiers= Shift;
};
indicator "Group 2" {
!allowExplicit;
groups= 0xfe;
};
indicator "Mouse Keys" {
indicatorDrivesKeyboard;
controls= mouseKeys;
};
};

xkb_symbols "pc/pc(pc105)+pc/fi+inet(thinkpad)+ctrl(nocaps)" {

name[group1]="IBM Thinkpad with extra keys";

key <ESC> { [ Escape ] };
key <AE01> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 1, exclam, exclamdown, onesuperior ]
};
key <AE02> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 2, quotedbl, at, twosuperior ]
};
key <AE03> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 3, numbersign, sterling, threesuperior ]
};
key <AE04> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 4, currency, dollar, cent ]
};
key <AE05> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 5, percent, EuroSign, masculine ]
};
key <AE06> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 6, ampersand, yen, ordfeminine ]
};
key <AE07> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 7, slash, braceleft, plusminus ]
};
key <AE08> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 8, parenleft, bracketleft, guillemotleft ]
};
key <AE09> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 9, parenright, bracketright, guillemotright ]
};
key <AE10> {
type= "FOUR_LEVEL",
symbols[Group1]= [ 0, equal, braceright, degree ]
};
key <AE11> {
type= "FOUR_LEVEL",
symbols[Group1]= [ plus, question, backslash, questiondown ]
};
key <AE12> {
type= "FOUR_LEVEL",
symbols[Group1]= [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ]
};
key <BKSP> {
type= "CTRL+ALT",
symbols[Group1]= [ BackSpace, Terminate_Server ]
};
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ q, Q, at, Greek_OMEGA ]
};
key <AD02> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ w, W, lstroke, Lstroke ]
};
key <AD03> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ e, E, EuroSign, cent ]
};
key <AD04> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ r, R, registered, registered ]
};
key <AD05> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ t, T, thorn, THORN ]
};
key <AD06> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ y, Y, leftarrow, yen ]
};
key <AD07> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ u, U, downarrow, uparrow ]
};
key <AD08> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ i, I, rightarrow, idotless ]
};
key <AD09> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ o, O, oe, OE ]
};
key <AD10> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ p, P, paragraph, THORN ]
};
key <AD11> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ aring, Aring, oe, OE ]
};
key <AD12> {
type= "FOUR_LEVEL",
symbols[Group1]= [ dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ]
};
key <RTRN> { [ Return ] };
key <LCTL> { [ Control_L ] };
key <AC01> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ a, A, ordfeminine, masculine ]
};
key <AC02> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ s, S, scaron, Scaron ]
};
key <AC03> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ d, D, eth, ETH ]
};
key <AC04> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ f, F, dstroke, ordfeminine ]
};
key <AC05> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ g, G, eng, ENG ]
};
key <AC06> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ h, H, hstroke, Hstroke ]
};
key <AC07> { [ j, J ] };
key <AC08> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ k, K, kra, ampersand ]
};
key <AC09> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ l, L, lstroke, Lstroke ]
};
key <AC10> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ odiaeresis, Odiaeresis, oslash, Ooblique ]
};
key <AC11> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ adiaeresis, Adiaeresis, ae, AE ]
};
key <TLDE> {
type= "FOUR_LEVEL",
symbols[Group1]= [ section, onehalf, onequarter, threequarters ]
};
key <LFSH> { [ Shift_L ] };
key <BKSL> {
type= "FOUR_LEVEL",
symbols[Group1]= [ apostrophe, asterisk, dead_grave, dead_breve ]
};
key <AB01> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ z, Z, zcaron, Zcaron ]
};
key <AB02> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ x, X, multiply, division ]
};
key <AB03> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ c, C, copyright, cent ]
};
key <AB04> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ v, V, leftdoublequotemark, grave ]
};
key <AB05> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ b, B, ssharp, apostrophe ]
};
key <AB06> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ n, N, ntilde, Ntilde ]
};
key <AB07> {
type= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ m, M, mu, masculine ]
};
key <AB08> {
type= "FOUR_LEVEL",
symbols[Group1]= [ comma, semicolon, dead_cedilla, dead_ogonek ]
};
key <AB09> {
type= "FOUR_LEVEL",
symbols[Group1]= [ period, colon, periodcentered, notsign ]
};
key <AB10> {
type= "FOUR_LEVEL",
symbols[Group1]= [ minus, underscore, hyphen, macron ]
};
key <RTSH> { [ Shift_R ] };
key <KPMU> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Multiply, XF86_ClearGrab ]
};
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> {
type= "FOUR_LEVEL",
symbols[Group1]= [ space, space, space, nobreakspace ]
};
key <CAPS> { [ Control_L ] };
key <FK01> {
type= "CTRL+ALT",
symbols[Group1]= [ F1, XF86_Switch_VT_1 ]
};
key <FK02> {
type= "CTRL+ALT",
symbols[Group1]= [ F2, XF86_Switch_VT_2 ]
};
key <FK03> {
type= "CTRL+ALT",
symbols[Group1]= [ F3, XF86_Switch_VT_3 ]
};
key <FK04> {
type= "CTRL+ALT",
symbols[Group1]= [ F4, XF86_Switch_VT_4 ]
};
key <FK05> {
type= "CTRL+ALT",
symbols[Group1]= [ F5, XF86_Switch_VT_5 ]
};
key <FK06> {
type= "CTRL+ALT",
symbols[Group1]= [ F6, XF86_Switch_VT_6 ]
};
key <FK07> {
type= "CTRL+ALT",
symbols[Group1]= [ F7, XF86_Switch_VT_7 ]
};
key <FK08> {
type= "CTRL+ALT",
symbols[Group1]= [ F8, XF86_Switch_VT_8 ]
};
key <FK09> {
type= "CTRL+ALT",
symbols[Group1]= [ F9, XF86_Switch_VT_9 ]
};
key <FK10> {
type= "CTRL+ALT",
symbols[Group1]= [ F10, XF86_Switch_VT_10 ]
};
key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
key <SCLK> { [ Scroll_Lock ] };
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
key <KP9> { [ KP_Prior, KP_9 ] };
key <KPSU> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Subtract, XF86_Prev_VMode ]
};
key <KP4> { [ KP_Left, KP_4 ] };
key <KP5> { [ KP_Begin, KP_5 ] };
key <KP6> { [ KP_Right, KP_6 ] };
key <KPAD> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Add, XF86_Next_VMode ]
};
key <KP1> { [ KP_End, KP_1 ] };
key <KP2> { [ KP_Down, KP_2 ] };
key <KP3> { [ KP_Next, KP_3 ] };
key <KP0> { [ KP_Insert, KP_0 ] };
key <KPDL> { [ KP_Delete, KP_Separator ] };
key <SYRQ> {
type= "PC_SYSRQ",
symbols[Group1]= [ Print, Sys_Req ]
};
key <MDSW> { [ Mode_switch ] };
key <LSGT> {
type= "FOUR_LEVEL",
symbols[Group1]= [ less, greater, bar, brokenbar ]
};
key <FK11> {
type= "CTRL+ALT",
symbols[Group1]= [ F11, XF86_Switch_VT_11 ]
};
key <FK12> {
type= "CTRL+ALT",
symbols[Group1]= [ F12, XF86_Switch_VT_12 ]
};
key <HOME> { [ Home ] };
key <UP> { [ Up ] };
key <PGUP> { [ Prior ] };
key <LEFT> { [ Left ] };
key <RGHT> { [ Right ] };
key <END> { [ End ] };
key <DOWN> { [ Down ] };
key <PGDN> { [ Next ] };
key <INS> { [ Insert ] };
key <DELE> { [ Delete ] };
key <KPEN> { [ KP_Enter ] };
key <RCTL> { [ Control_R ] };
key <PAUS> {
type= "PC_BREAK",
symbols[Group1]= [ Pause, Break ]
};
key <PRSC> {
type= "PC_SYSRQ",
symbols[Group1]= [ Print, Sys_Req ]
};
key <KPDV> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Divide, XF86_Ungrab ]
};
key <RALT> {
type= "TWO_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift, Multi_key ]
};
key <BRK> {
type= "PC_BREAK",
symbols[Group1]= [ Pause, Break ]
};
key <LWIN> { [ Super_L ] };
key <RWIN> { [ Super_R ] };
key <MENU> { [ Menu ] };
key <LVL3> { [ ISO_Level3_Shift ] };
key <ALT> { [ NoSymbol, Alt_L ] };
key <KPEQ> { [ KP_Equal ] };
key <SUPR> { [ NoSymbol, Super_L ] };
key <HYPR> { [ NoSymbol, Hyper_L ] };
key <META> { [ NoSymbol, Meta_L ] };
key <I69> { [ Next_Virtual_Screen ] };
key <I6A> { [ Prev_Virtual_Screen ] };
modifier_map Control { <LCTL> };
modifier_map Shift { <LFSH> };
modifier_map Shift { <RTSH> };
modifier_map Mod1 { <LALT> };
modifier_map Control { <CAPS> };
modifier_map Mod2 { <NMLK> };
modifier_map Mod5 { <MDSW> };
modifier_map Control { <RCTL> };
modifier_map Mod5 { <LVL3> };
modifier_map Mod1 { <ALT> };
modifier_map Mod4 { <SUPR> };
modifier_map Mod4 { <HYPR> };
modifier_map Mod1 { <META> };
};

xkb_geometry "pc(pc104)" {

width= 470;
height= 210;

alias <AC00> = <CAPS>;
alias <AA00> = <LCTL>;

baseColor= "white";
labelColor= "black";
xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
description= "Generic 104";

shape "NORM" {
corner= 1,
{ [ 18, 18 ] },
{ [ 2, 1 ], [ 16, 16 ] }
};
shape "BKSP" {
corner= 1,
{ [ 38, 18 ] },
{ [ 2, 1 ], [ 36, 16 ] }
};
shape "TABK" {
corner= 1,
{ [ 28, 18 ] },
{ [ 2, 1 ], [ 26, 16 ] }
};
shape "BKSL" {
corner= 1,
{ [ 28, 18 ] },
{ [ 2, 1 ], [ 26, 16 ] }
};
shape "RTRN" {
corner= 1,
{ [ 42, 18 ] },
{ [ 2, 1 ], [ 40, 16 ] }
};
shape "CAPS" {
corner= 1,
{ [ 33, 18 ] },
{ [ 2, 1 ], [ 31, 16 ] }
};
shape "LFSH" {
corner= 1,
{ [ 42, 18 ] },
{ [ 2, 1 ], [ 40, 16 ] }
};
shape "RTSH" {
corner= 1,
{ [ 52, 18 ] },
{ [ 2, 1 ], [ 50, 16 ] }
};
shape "MODK" {
corner= 1,
{ [ 27, 18 ] },
{ [ 2, 1 ], [ 25, 16 ] }
};
shape "SMOD" {
corner= 1,
{ [ 23, 18 ] },
{ [ 2, 1 ], [ 21, 16 ] }
};
shape "SPCE" {
corner= 1,
{ [ 113, 18 ] },
{ [ 2, 1 ], [ 111, 16 ] }
};
shape "KP0" {
corner= 1,
{ [ 37, 18 ] },
{ [ 2, 1 ], [ 35, 16 ] }
};
shape "KPAD" {
corner= 1,
{ [ 18, 37 ] },
{ [ 2, 1 ], [ 16, 35 ] }
};
shape "LEDS" { { [ 75, 20 ] } };
shape "LED" { { [ 5, 1 ] } };
section "Function" {
key.color= "grey20";
priority= 7;
top= 52;
left= 19;
width= 351;
height= 19;
row {
top= 1;
left= 1;
keys {
{ <ESC>, "NORM", 1 },
{ <FK01>, "NORM", 20, color="white" },
{ <FK02>, "NORM", 1, color="white" },
{ <FK03>, "NORM", 1, color="white" },
{ <FK04>, "NORM", 1, color="white" },
{ <FK05>, "NORM", 11, color="white" },
{ <FK06>, "NORM", 1, color="white" },
{ <FK07>, "NORM", 1, color="white" },
{ <FK08>, "NORM", 1, color="white" },
{ <FK09>, "NORM", 11, color="white" },
{ <FK10>, "NORM", 1, color="white" },
{ <FK11>, "NORM", 1, color="white" },
{ <FK12>, "NORM", 1, color="white" },
{ <PRSC>, "NORM", 8, color="white" },
{ <SCLK>, "NORM", 1, color="white" },
{ <PAUS>, "NORM", 1, color="white" }
};
};
}; // End of "Function" section

section "Alpha" {
key.color= "white";
priority= 8;
top= 91;
left= 19;
width= 287;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <TLDE>, "NORM", 1 }, { <AE01>, "NORM", 1 },
{ <AE02>, "NORM", 1 }, { <AE03>, "NORM", 1 },
{ <AE04>, "NORM", 1 }, { <AE05>, "NORM", 1 },
{ <AE06>, "NORM", 1 }, { <AE07>, "NORM", 1 },
{ <AE08>, "NORM", 1 }, { <AE09>, "NORM", 1 },
{ <AE10>, "NORM", 1 }, { <AE11>, "NORM", 1 },
{ <AE12>, "NORM", 1 },
{ <BKSP>, "BKSP", 1, color="grey20" }
};
};
row {
top= 20;
left= 1;
keys {
{ <TAB>, "TABK", 1, color="grey20" },
{ <AD01>, "NORM", 1 }, { <AD02>, "NORM", 1 },
{ <AD03>, "NORM", 1 }, { <AD04>, "NORM", 1 },
{ <AD05>, "NORM", 1 }, { <AD06>, "NORM", 1 },
{ <AD07>, "NORM", 1 }, { <AD08>, "NORM", 1 },
{ <AD09>, "NORM", 1 }, { <AD10>, "NORM", 1 },
{ <AD11>, "NORM", 1 }, { <AD12>, "NORM", 1 },
{ <BKSL>, "BKSL", 1 }
};
};
row {
top= 39;
left= 1;
keys {
{ <CAPS>, "CAPS", 1, color="grey20" },
{ <AC01>, "NORM", 1 }, { <AC02>, "NORM", 1 },
{ <AC03>, "NORM", 1 }, { <AC04>, "NORM", 1 },
{ <AC05>, "NORM", 1 }, { <AC06>, "NORM", 1 },
{ <AC07>, "NORM", 1 }, { <AC08>, "NORM", 1 },
{ <AC09>, "NORM", 1 }, { <AC10>, "NORM", 1 },
{ <AC11>, "NORM", 1 },
{ <RTRN>, "RTRN", 1, color="grey20" }
};
};
row {
top= 58;
left= 1;
keys {
{ <LFSH>, "LFSH", 1, color="grey20" },
{ <AB01>, "NORM", 1 }, { <AB02>, "NORM", 1 },
{ <AB03>, "NORM", 1 }, { <AB04>, "NORM", 1 },
{ <AB05>, "NORM", 1 }, { <AB06>, "NORM", 1 },
{ <AB07>, "NORM", 1 }, { <AB08>, "NORM", 1 },
{ <AB09>, "NORM", 1 }, { <AB10>, "NORM", 1 },
{ <RTSH>, "RTSH", 1, color="grey20" }
};
};
row {
top= 77;
left= 1;
keys {
{ <LCTL>, "MODK", 1, color="grey20" },
{ <LWIN>, "SMOD", 1, color="grey20" },
{ <LALT>, "SMOD", 1, color="grey20" },
{ <SPCE>, "SPCE", 1 },
{ <RALT>, "SMOD", 1, color="grey20" },
{ <RWIN>, "SMOD", 1, color="grey20" },
{ <MENU>, "SMOD", 1, color="grey20" },
{ <RCTL>, "SMOD", 1, color="grey20" }
};
};
}; // End of "Alpha" section

section "Editing" {
key.color= "grey20";
priority= 9;
top= 91;
left= 312;
width= 58;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <INS>, "NORM", 1 }, { <HOME>, "NORM", 1 },
{ <PGUP>, "NORM", 1 }
};
};
row {
top= 20;
left= 1;
keys {
{ <DELE>, "NORM", 1 }, { <END>, "NORM", 1 },
{ <PGDN>, "NORM", 1 }
};
};
row {
top= 58;
left= 20;
keys {
{ <UP>, "NORM", 1 }
};
};
row {
top= 77;
left= 1;
keys {
{ <LEFT>, "NORM", 1 }, { <DOWN>, "NORM", 1 },
{ <RGHT>, "NORM", 1 }
};
};
}; // End of "Editing" section

section "Keypad" {
key.color= "grey20";
priority= 10;
top= 91;
left= 376;
width= 77;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <NMLK>, "NORM", 1 }, { <KPDV>, "NORM", 1 },
{ <KPMU>, "NORM", 1 }, { <KPSU>, "NORM", 1 }
};
};
row {
top= 20;
left= 1;
keys {
{ <KP7>, "NORM", 1, color="white" },
{ <KP8>, "NORM", 1, color="white" },
{ <KP9>, "NORM", 1, color="white" },
{ <KPAD>, "KPAD", 1 }
};
};
row {
top= 39;
left= 1;
keys {
{ <KP4>, "NORM", 1, color="white" },
{ <KP5>, "NORM", 1, color="white" },
{ <KP6>, "NORM", 1, color="white" }
};
};
row {
top= 58;
left= 1;
keys {
{ <KP1>, "NORM", 1, color="white" },
{ <KP2>, "NORM", 1, color="white" },
{ <KP3>, "NORM", 1, color="white" },
{ <KPEN>, "KPAD", 1 }
};
};
row {
top= 77;
left= 1;
keys {
{ <KP0>, "KP0", 1, color="white" },
{ <KPDL>, "NORM", 1, color="white" }
};
};
}; // End of "Keypad" section

solid "LedPanel" {
top= 52;
left= 377;
priority= 0;
color= "grey10";
shape= "LEDS";
};
indicator "NumLock" {
top= 67;
left= 382;
priority= 1;
onColor= "green";
offColor= "green30";
shape= "LED";
};
indicator "CapsLock" {
top= 67;
left= 407;
priority= 2;
onColor= "green";
offColor= "green30";
shape= "LED";
};
indicator "ScrollLock" {
top= 67;
left= 433;
priority= 3;
onColor= "green";
offColor= "green30";
shape= "LED";
};
text "NumLockLabel" {
top= 55;
left= 378;
priority= 4;
width= 19.8;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Num\nLock";
};
text "CapsLockLabel" {
top= 55;
left= 403;
priority= 5;
width= 26.4;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Caps\nLock";
};
text "ScrollLockLabel" {
top= 55;
left= 428;
priority= 6;
width= 39.6;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Scroll\nLock";
};
};

};


-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.7-1-686-nixu-laptop
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8

Versions of packages xlibs depends on:
ii libice6 4.3.0.dfsg.1-6 Inter-Client Exchange library
ii libsm6 4.3.0.dfsg.1-6 X Window System Session Management
ii libx11-6 4.3.0.dfsg.1-6 X Window System protocol client li
ii libxext6 4.3.0.dfsg.1-6 X Window System miscellaneous exte
ii libxft1 4.3.0.dfsg.1-6 FreeType-based font drawing librar
ii libxi6 4.3.0.dfsg.1-6 X Window System Input extension li
ii libxmu6 4.3.0.dfsg.1-6 X Window System miscellaneous util
ii libxmuu1 4.3.0.dfsg.1-6 lightweight X Window System miscel
ii libxp6 4.3.0.dfsg.1-6 X Window System printing extension
ii libxpm4 4.3.0.dfsg.1-6 X pixmap library
ii libxrandr2 4.3.0.dfsg.1-6 X Window System Resize, Rotate and
ii libxt6 4.3.0.dfsg.1-6 X Toolkit Intrinsics
ii libxtrap6 4.3.0.dfsg.1-6 X Window System protocol-trapping
ii libxtst6 4.3.0.dfsg.1-6 X Window System event recording an
ii xlibs-data 4.3.0.dfsg.1-6 X Window System client data

-- no debconf information


--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST.DeleteThis@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster.DeleteThis@lists.debian.org
Back to top
Login to vote
Mohammed Adnène

External


Since: Nov 23, 2006
Posts: 23



(Msg. 2) Posted: Sat Apr 28, 2007 6:10 pm
Post subject: Bug#261088: Suggestion: xkb rules for Thinkpad extra keys [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Fri, Jul 23, 2004, Hile Tuohela wrote:
> The files are available with a html README from
> http://hile.dyndns.org/xkb-thinkpad.tgz

This page does no more exist. Please next time attach the file.

I am closing the bug, since there is no more input. Feel free to reopen
the bug if you reproduce it.

--
Mohammed Adnčne Trojette
Back to top
Login to vote
Display posts from previous:   
Related Topics:
[gentoo-user] Gentoo Docs & FAQ: Rules Suggestion - While it's certain that people join the Gentoo mailing list (or any other mailing list for that matter) to get help wit...

[gentoo-user] Problem with blocked package on Gnome upgrad.. - Hi - can anyone help how I can clear this block. I'm trying to upgrade Gnome. # emerge -p gnome (edited) [blocks B]..

NDAs - ANY KNOWN RULES? - Hi, such stuff causes a lot of troubles since long. Are there any rules, or can everybody go on as some sort of..

Where is Rules.make? - I tried something simple in RedHat Enterprise Linux 4 WS as a first experiment to implement a device driver. The kerne...

add rules to firwall - hello, I have installed Oracle10g on my redhat linux es3 machine and want to access the database through a windows xp..

[gentoo-user] udev.rules - NOT YET! - I just tried udev again. I did try it when we were first urged to, but went back to devfs because so many things..
       Soft32 Home -> Linux -> X - Debian All times are: Pacific Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Categories:
 Windows
  Linux
 Mac
 PDA


[ Contact us | Terms of Service/Privacy Policy ]