# Ergonomic keyboards?

## Sedrik

What ever happended to these? did they all die? I as a programmer (still in education) find them absolutley lovley as my recent switch to linux I find myself typing even more than before (Yay!) and was woundering what keyboard is the best ergonomic one with good (would love full) support by gentoo?

The one I have my eyes on right now is Microsoft Natural Ergonomic Keyboard 4000 (shrugs, what a name ^^). A review http://www.everythingusb.com/microsoft_natural_ergonomic_keyboard_4000.html. This board seems to have alot of extra functions and it would be nice to be able to use them all if one was purchased.

Anyway, is there other recomendations or suggestions? Know support and issues?

----------

## chrismortimore

I programme on a standard £2.99 keyboard from dabs.com and find it much more comfortable than the ergonomic keyboards I've used in the past.  I'm not sure if it is because it's a great keyboard, or because I knew it cost next to nothing though...  So I highly recommend it  :Wink:   Sadly, it's unbranded, so can't recommend it further than telling you they exist in the world..  :Razz:   Useful, ain't I?

----------

## Sedrik

 *chrismortimore wrote:*   

> I programme on a standard £2.99 keyboard from dabs.com and find it much more comfortable than the ergonomic keyboards I've used in the past.  I'm not sure if it is because it's a great keyboard, or because I knew it cost next to nothing though...  So I highly recommend it   Sadly, it's unbranded, so can't recommend it further than telling you they exist in the world..   Useful, ain't I?

 

Like a empty box in outer space ^^

Nice to see a reply though =) I don't really get why people don't use these? they are really great.

----------

## pactoo

I do use a MS natural keyboard and I love it, it's already my second. I just wish, all the extra function keys would work (my first try with lineak was a disaster and modifying xmodmap is to hardcore for me).

----------

## Sedrik

 *pactoo wrote:*   

> I do use a MS natural keyboard and I love it, it's already my second. I just wish, all the extra function keys would work (my first try with lineak was a disaster and modifying xmodmap is to hardcore for me).

 

Do you use the natural 4000 that I'm interested in? =)

*Edit

I don't mind hacking xmodmap if that will make everything work =)

----------

## pactoo

Unfortunately not. Not unfortunately not, because the 4000 is so much better, I do not know this one, even though it looks pretty cool, rahter unfortunately not as another chance for a xmodmap has gone past...

No, I am using the natural multimedia keyboard: http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=019

The very first generation of the natural keyboards still had the best layout, the secong generation sucked, I skiped those one and these are ok again. The need to activate the function keys is a bit annoying, but I am sure, that can be automated (similar to numlock)

----------

## Sedrik

 *pactoo wrote:*   

> Unfortunately not. Not unfortunately not, because the 4000 is so much better, I do not know this one, even though it looks pretty cool, rahter unfortunately not as another chance for a xmodmap has gone past...
> 
> No, I am using the natural multimedia keyboard: http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=019
> 
> The very first generation of the natural keyboards still had the best layout, the secong generation sucked, I skiped those one and these are ok again. The need to activate the function keys is a bit annoying, but I am sure, that can be automated (similar to numlock)

 

ok, it is still the same layout but some more features added to the 4k model I guess.

The FLOCK problem can be fixed with some tweaking (read a post about it earlier, search the boards).

----------

## truc

hi, I'd like to know if you eventually bought  this keyboard ( Microsoft Natural Ergonomic Keyboard 4000  )

I'm also looking for an ergonomic keyboard, and I have to agree this one caught my eyes, it has a lot of extra key, and I like that.

I'm also looking for a quiet keyboard, is this a quiet keyboard? if it's not, does somebody know some quiet keyboard (and also ergonomic if possible) ?

I think I read there was some problems with usb keyboard, and extra keys? Are there still problem? If I use the USB->PS2 adapter, would I still have difficulties to make extra keys working ?

thanks:)

----------

## Sedrik

I haven't bought it yet, so don't know if it is quiet or not.

There is no real problem with usb keyboards, you will probably have to do the extra buttons configurations by yourself but thats about it.

----------

## truc

 *Sedrik wrote:*   

> There is no real problem with usb keyboards, you will probably have to do the extra buttons configurations by yourself but thats about it.

 

thanks, I'm already using xmodmap and xbindkeys, so this shouldn't be a problem.

----------

## Sedrik

 *truc wrote:*   

>  *Sedrik wrote:*   There is no real problem with usb keyboards, you will probably have to do the extra buttons configurations by yourself but thats about it. 
> 
> thanks, I'm already using xmodmap and xbindkeys, so this shouldn't be a problem.

 

np, tell me if you bought it and what you thought of it  :Smile: 

----------

## truc

 *http://www.hardwarecentral.com/hardwarecentral/reviews/article.php/3550211 wrote:*   

> The keys are quiet, with a medium-soft, notebook-ish typing feel

 

 :Smile:  gonna try it in a shop

----------

## clintpatty

Does anyone know about Maltron support?

----------

## Houdini

I use a Kinesis Advantage Pro at work, and I think that it qualifies as an ergo keyboard  :Smile: 

Don't upgrade to one without being sure.  It's expensive ($300) and will take you a while to regain your typing speed.  Might be time to switch to Devorak as well  :Smile: 

----------

## purplerhino

the ergo 4000 is very quiet and the downward wrist thing is very comfortable... however i'm not having as much luck with the extra keys as i have had in the past, that's how i found this thread, but you guys were no help with that!  :Wink: 

----------

## Dammital

 *Houdini wrote:*   

> I use a Kinesis Advantage Pro at work, and I think that it qualifies as an ergo keyboard :)
> 
> Don't upgrade to one without being sure.  It's expensive ($300) and will take you a while to regain your typing speed.  Might be time to switch to Devorak as well :)

 

I just sent back my Kinesis Advantage USB after the 60-day eval period had expired.  I tried really, really hard to like it -- I carried it back and forth to work with me, and used it exclusively for nearly two months.  But I never warmed up to it, my typing speed was slow to improve, and I had continuing problems hitting some special characters.  And for all my effort, my wrist didn't feel any worse or any better than it did when I started using the Kinesis keyboard.

That's not to say that it doesn't work for some people.  Bill Clementson has written a series of blog entries on RSI and emacs and his Kinesis experience.  Google for 'em -- he has some good advice, and he's the reason I tried the thing to begin with.

----------

## purplerhino

 :Shocked:   wow that price is outrageous.  my ergo 4000 was $40 after rebate   :Smile: 

not a big fan of giving microsoft money, but dang it they seem to be the only ones putting any thought into keyboards.  logitech, great mouses, so so keyboards.

----------

## Sedrik

 *purplerhino wrote:*   

>   wow that price is outrageous.  my ergo 4000 was $40 after rebate  
> 
> not a big fan of giving microsoft money, but dang it they seem to be the only ones putting any thought into keyboards.  logitech, great mouses, so so keyboards.

 

Yeah it's expensive  :Sad:  That's why I haven't investyed in it yet, will probably use my current keyboard until it wear down and then try to get a ergonomic.

BTW: if you can get keycodes from xev from the special keys you can get them to work, else you need better drivers for the keyboard I belive. There is a article about it on the wiki, search for idesk keys or logitech special keys.

----------

## purplerhino

thanks, i'll check it out, i haven't put much effort into it yet honestly, but the lesson to learn here is to USE THE WIKI.  I always forget that.  Wiki good   :Very Happy: 

----------

## truc

hi again:) I decided to buy the "Natural Ergonomic Keyboard 4000" today, and have to say it's really confortable, I get alkmost used to the 'ergonomic' style in about an hour.

Now, I'm playing with the extra keys..

'launchkeys' 1,2,3,4 and 5 don't send any event, (nothing 'in' xev nor dmesg), same for the favorite button and zoom scroll, but, I'm not using evdev yet. And from the wiki, it looks like I can hope to make theses keys working.

Will try later..

PS: an other good point is that it's not too much noisy, at least far less than my previous keyboard..[/i]

----------

## Sedrik

So you can recommend it?  :Smile: 

I think I will hold in for a while since I bhought a Nintendo DS earlier this week, much money gone there ^^

----------

## truc

I'd recommend it! 

at this time there is some Multimedia keys that still don't work, I find patches for the to make them working, I tried some of them, but after patching the kernel I can't 'make'  it :/

heres are soe of the patches I found :

http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg45923.html

http://readlist.com/lists/vger.kernel.org/linux-kernel/35/175747.html

http://lwn.net/Articles/194015/

http://lkml.org/lkml/2006/3/1/361

http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=16923;list=linux

I will try again later.

Right now I have already more multimedia keys working than I used to ,  

working

start

search

mail

prev/next

mute

volume up/down

play/pause

calculator

not working yet

Launch 1,2,3,4,5

favorite

Zoom scroll

----------

## Sedrik

ok =)

The most important keys for me are the multimedia keys, I seldom use any others. But I will keep thinking about buying it =)

----------

## purplerhino

 *Quote:*   

> The most important keys for me are the multimedia keys

 

yeah me too, that's where i'm having the problem... the pause and the volumes work fine, but there are no previous and next keys...  so i tried to just map them to the forward and back buttons, i don't actually use them for web browsing, and the gnome keyboard shortcuts act like it accepts them all fine and well, but they don't work in rhythmbox.  The keyboard shortcuts worked on my last keyboard in rhythmbox with the actual prev/next keys...  so that's where I'm having trouble.

I've never been able to get zoom sliders or those favorite keys to work, and i've never really cared, they didn't make xev events so i figured it would be a lot of work.

----------

## geniux

 *Sedrik wrote:*   

> ok =)
> 
> The most important keys for me are the multimedia keys, I seldom use any others. But I will keep thinking about buying it =)

 

Stop thinking and buy it  :Wink: 

It's a great keyboard (even if it's name says different  :Twisted Evil:  ) doing wonders for your wrists, at least it did for me, and the multimedia keys works great with lineak

----------

## Sedrik

 *purplerhino wrote:*   

>  *Quote:*   The most important keys for me are the multimedia keys 
> 
> yeah me too, that's where i'm having the problem... the pause and the volumes work fine, but there are no previous and next keys...  so i tried to just map them to the forward and back buttons, i don't actually use them for web browsing, and the gnome keyboard shortcuts act like it accepts them all fine and well, but they don't work in rhythmbox.  The keyboard shortcuts worked on my last keyboard in rhythmbox with the actual prev/next keys...  so that's where I'm having trouble.
> 
> I've never been able to get zoom sliders or those favorite keys to work, and i've never really cared, they didn't make xev events so i figured it would be a lot of work.

 

Hmm back and forward buttons are for explorers I believe? Never encountered a player that uses thoose buttons to change songs.. but then again I have never tried rythmbox. As far as I know most players have speciall command line calls to play the next song, atleast thats the case for xmms and audicious.

 *geniux wrote:*   

> 
> 
> Stop thinking and buy it 
> 
> It's a great keyboard (even if it's name says different  ) doing wonders for your wrists, at least it did for me, and the multimedia keys works great with lineak
> ...

 

ok  :Smile: 

Never heard of lineak is it a player?

----------

## purplerhino

 *Quote:*   

> Hmm back and forward buttons are for explorers I believe? Never encountered a player that uses thoose buttons to change songs.. but then again I have never tried rythmbox. As far as I know most players have speciall command line calls to play the next song, atleast thats the case for xmms and audicious.
> 
> 

 

well it doesn't by default.  rhythmbox uses gnome keyboard shortcuts, and you can theoretically assign "next track" and "previous track" to any key.  i actually only use rhythmbox so i can use those key bindings, rhythmbox isn't anything too special, you're not missing anything.

the strange thing is when i'm in the keybinding dialog, if i rebind the key a couple times pressing the same key i get three different things, it's strange.  i'll try and bind audio next to the forward key, i press it once i get XF86AudioNext, or I might get XF86Forward, or i might get some strange hex value, all seemingly random from the same key.  strange.

http://lineak.sourceforge.net/ is a program for binding special keys on keyboards, i haven't tried it yet because the gnome keyboard shortcuts had served me well in the past, but now not so much so i might need to check it out.

----------

## truc

 *geniux wrote:*   

>  the multimedia keys works great with lineak

 

Are the all the multimedia keys working for you? are you using evdev? because if I do use evdev for the keyboard, none of these keys are working! 

And the prev-next bouton are working for me too (I'm using xbindkeys, but who cares!? it just that the keys which are working are the keys xev received events from.. for the other I'm still working on it:) )

----------

## geniux

 *Sedrik wrote:*   

> 
> 
> ok 
> 
> Never heard of lineak is it a player?

 

lineak is a nifty little app that lets you configure your keyboards multimedia buttons to work as you want, read about it here

All you have to do is emerge lineakd

 *truc wrote:*   

> 
> 
> Are the all the multimedia keys working for you? are you using evdev? because if I do, none of these keys are working!
> 
> And the prev-next bouton are working for me too (I'm using xbindkeys, but who cares!? it just that the keys which are working are the keys xev received events from.. for the other I'm still working on it:) )

 

Yes, play/paus stop, mute etc, no I'm not using evdev it's locking my system up so I have too live without it for awhile longer. But I haven't looked at xbindkeys so my prev and next don't work  :Wink: 

But I'd use this keyboard even if the multimedia buttons didn't work, because it's wonderful to type on

----------

## truc

when using keyboard instead of evdev, as I stated before:

working

start

search

mail

prev/next

mute

volume up/down

play/pause

calculator

this means xev can see something when typing on them.

not working yet

Launch 1,2,3,4,5

favorite

Zoom scroll

since prev/next send events, it's *really* wierd that xbinkeys didn't, since it's working here.. (may be you just missed something :S )

Anyway, my point is now to make the 'non-working' keys working!

----------

## geniux

I might mention that my prev/next works for my multimedia apps but not with my browser which I'd like, yeah I'm a lazy surfer

----------

## truc

As a lazy surfer I just use the Mouse Gestures extension for firefox (As I was used to it with opera...) really , really great! You should try it  :Wink: 

----------

## geniux

 *truc wrote:*   

> As a lazy surfer I just use the Mouse Gestures extension for firefox (As I was used to it with opera...) really , really great! You should try it 

 

That seems like a good idea which I'll try, thanks much  :Smile: 

----------

## truc

well, I'm back with some news, as I said before I found several patches to make these keyboard working (Natural Ergonomic Keyboard 4000), 

there are:

	1.  [PATCH] usb: The HID Simple Driver Interface 0.3.1 (core)

	2.  [PATCH] usb: HID Simple Driver Interface 0.3.1 (Kconfig and Makefile)

and the patch for this keyboard NEK4K:

        3.  [PATCH] usb: Microsoft Natural Ergonomic Keyboard 4000 Driver 0.3.1

Since these patches are a bit old, There was some problem patching the kernel. I just did it manually (yeah   :Embarassed:  )

From thatn I made a single patch for you to try it and help me :/

download it here: NEK4K.patch

(I'm running vanilla-sources-2.6.18-rc7, but this shouldn't be a problem )

after patching the kernel you should have new menu items in device drivers --> usb

But I can't make the kernel:

```
  CC      drivers/usb/core/inode.o

  CC      drivers/usb/core/devices.o

  LD      drivers/usb/core/usbcore.o

  LD      drivers/usb/core/built-in.o

  CC      drivers/usb/host/pci-quirks.o

  CC      drivers/usb/host/ohci-hcd.o

  LD      drivers/usb/host/built-in.o

  CC [M]  drivers/usb/host/ehci-hcd.o

  CC      drivers/usb/input/hid-core.o

  CC      drivers/usb/input/hid-input.o

drivers/usb/input/hid-input.c: In function hidinput_simple_driver_configure_usage:

drivers/usb/input/hid-input.c:1067: warning: op may be used uninitialized in this function

make[3]: *** No rule to make target `drivers/usb/input/hid-simple.o', needed by `drivers/usb/input/usbhid.o'.  Stop.

make[2]: *** [drivers/usb/input] Error 2

make[1]: *** [drivers/usb] Error 2

make: *** [drivers] Error 2

```

This probably means the makefile is wrong, but I have no idea what to change :/

So I'd be glad if some one could help me on this  :Smile: 

TIA

----------

## purplerhino

wow, you're hardcore.  i just installed lineakd and set it up to make forward/back do "rhythmbox --next" "rhythmbox --prev" and calulator button to run gcalctool...  all the other buttons work fine with gnome keyboard shortcuts, except the favorites and the zoom.  But they do not make any xev events (and no message in dmesg either, like the wiki said they might, so I figured getting them to work was hopeless)  I am content with this setup, I wasn't planning on doing any kernel hacking!  good luck with that

----------

## geniux

 *purplerhino wrote:*   

> i just installed lineakd and set it up to make forward/back do "rhythmbox --next" "rhythmbox --prev" and calulator button to run gcalctool...  all the other buttons work fine with gnome keyboard shortcuts

 

Same here and that does it for me  :Cool: 

----------

## truc

yeahhh, but we've already said all that. We have the same keys working, I'm just trying to make the others working.

Anf for your information, using lineakd or xbindkeys is just the same, what you can do with xbindkeys is possible to do with lineakd   :Wink: 

----------

## geniux

 *truc wrote:*   

> 
> 
> Anf for your information, using lineakd or xbindkeys is just the same, what you can do with xbindkeys is possible to do with lineakd  

 

Know that just prefering lineakd though, I'm more used to it and find it easier to use

Hope you'll get the buttons working, would be very neat and impressing  :Wink: 

----------

## masseya

I know most of this thread has focused on larger keyboards, but if you're looking for a smaller ergonomic keyboard or interested in just trying out something new you might consider TypeMatrix.  (http://www.typematrix.com/)

They have Dvorak versions as well.  I have used both the 2030 and the 2020 and found them to be very solid and comfortable.  In particular, I find it much easier on me when I'm constantly switching back and forth from the mouse.

----------

## Sedrik

 *masseya wrote:*   

> I know most of this thread has focused on larger keyboards, but if you're looking for a smaller ergonomic keyboard or interested in just trying out something new you might consider TypeMatrix.  (http://www.typematrix.com/)
> 
> They have Dvorak versions as well.  I have used both the 2030 and the 2020 and found them to be very solid and comfortable.  In particular, I find it much easier on me when I'm constantly switching back and forth from the mouse.

 

But then again that is not an ergonomic keyboard, simply an ordinary keyboard with the keys moved around ^^ Thanks for the tip though =)

----------

## trantorvega

For the possessors of the Microsoft Natural Ergonomic Keyboard 4000:

I wrote this howto with informations to get ALL the keys recognised by X, along with custom XKB files.

http://gentoo-wiki.com/index.php?title=HOWTO_Microsoft_Natural_Ergonomic_Keyboard_4000

Comments are welcome.

----------

## truc

that sounds good, I did not tried yet, but from what I read you just applied the same patch I applied. That's wierd, since I didn't get any result. May be the patches I used were too old for this kernel version.  :Question: 

anyway will try&comment this tonight.

----------

## truc

With the  patches I now have event for every keys ! Unfortunately, I can't set the Layout for the keyboard using evdev, this is really annoying. With the keyboard driver I just set 

```
Option      "XkbLayout" "fr"
```

 to have a FR layoutm but this doesn't work with evdev  :Question: 

anyway, I wanted to say we can add SYMLINK with udev this way

```
DRIVERS=="usbhid", ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc00ip00", SYMLINK+="input/nek4k1"

DRIVERS=="usbhid", ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc01ip01", SYMLINK+="input/nek4k0"
```

and this work too.

```

total 0

drwxr-xr-x 2 root root    100 2006-09-27 12:04 by-id

drwxr-xr-x 2 root root    120 2006-09-27 12:04 by-path

crw------- 1 root root 13, 64 2006-09-27 12:04 event0

crw------- 1 root root 13, 65 2006-09-27 12:04 event1

crw------- 1 root root 13, 66 2006-09-27 12:04 event2

crw-r--r-- 1 root root 13, 63 2006-09-27 12:04 mice

crw------- 1 root root 13, 32 2006-09-27 12:04 mouse0

lrwxrwxrwx 1 root root      6 2006-09-27 12:04 nek4k0 -> event1

lrwxrwxrwx 1 root root      6 2006-09-27 12:04 nek4k1 -> event2

lrwxrwxrwx 1 root root      6 2006-09-27 12:04 razer -> event0

```

don't forget to also change xorg.conf

I've read evdev is now supposed to support the layout thingie, but I can't make it to work. I have x11-drivers/xf86-input-evdev-1.0.0.5

Last question. why can't I use xmodmap anymore  :Question: 

EDIT: I ended, using the driver keyboard for the corekeyboard and evdev for the other, this way, I can have my french layout  :Smile: 

I've not finished configuring yet, but it looks like I no longer have the problem with the favoritekey and the downarrow key

----------

## truc

oh well it's working, so here here how I did:

Follow the first steps in the gentoo-wiki: patch the kernel, then configure udev, I gave my udev settings the post just before, but you can also use those which are on the wiki.

then configure xorg.conf so that it uses the driver keyboard for the corekeyboard (for me it was "/dev/input/nek4k0")  and evdev for the other one (still for me it was: "/dev/input/nek4k1")

```
Section "ServerLayout"

        Identifier     "X.org Configured"

        Screen      0  "Screen0" 0 0

        InputDevice    "Mouse0"          "CorePointer"

        InputDevice    "Keyboard0"       "CoreKeyboard"

        InputDevice    "Keyboard1"       "SendCoreEvents"

EndSection

Section "InputDevice"

        Identifier  "Keyboard0"

        Driver      "keyboard"

        Option      "CoreKeyboard"

        Option      "XkbModel"          "pc105"

        Option      "XkbRules"          "xorg"

        Option      "XkbLayout"         "fr"

EndSection

Section "InputDevice"

        Identifier  "Keyboard1"

        Driver      "evdev"

        Option      "Device"                         "/dev/input/nek4k1"

        Option      "XkbModel"      "evdev"

        Option      "XkbLayout" "fr"

EndSection 
```

then, you can configure your /etc/X11/Xmodmap file or whichever xmodmap file it is.

Here is mine

```
keycode 166 = XF86AudioPrev 

keycode 167 = XF86AudioNext

keycode 121 = XF86AudioStop

keycode 172 = XF86AudioPlay

keycode 122 = XF86AudioLowerVolume

keycode 123 = XF86AudioRaiseVolume 

keycode 223 = XF86Mail

keycode 225 = XF86Search

keycode 180 = XF86WWW

keycode 148 = XF86Calculator

keycode 218 = XF86Launch1

keycode 219 = XF86Launch2

keycode 220 = XF86Launch3

keycode 221 = XF86Launch4

keycode 222 = XF86Launch5

keycode 191 = XF86ZoomIn

keycode 192 = XF86ZoomOut

keycode 187 = parenleft

keycode 188 = parenright

keycode 125 = equal
```

Note: the favorite key is detected by default as the super_R key

and that's it:)

----------

## bigbob73

Truc, Thanks for the very nice how-to.  Can't wait to try it tonight!   :Very Happy: 

----------

## truc

 *bigbob73 wrote:*   

> Truc, Thanks for the very nice how-to.  Can't wait to try it tonight!  

 

actually trantorvega found the good patches (the ones I found before wre probably to old for my kernel version) and begins writing an howto on the gentoo-wiki, the problem was it doesn't work the way I wanted to, (especially the layout thing). I personnally just find an other way (may be easier but that's not what I was looking for...) of doing these. But I've used his work  :Smile: 

----------

## trantorvega

Truc: I use an italian layout with no problem, even if I wrote "us" in the howto.

Can you show me the output of setxkbmap -print ?

(Of course I also use the xkb modifications I list in the howto).

Mine is:

```

# setxkbmap -print

xkb_keymap {

        xkb_keycodes  { include "evdev+nek4k(nek4k)+aliases(qwerty)"    };

        xkb_types     { include "complete"      };

        xkb_compat    { include "complete"      };

        xkb_symbols   { include "pc(pc105)+it+inet(microsoftnek4k)"     };

        xkb_geometry  { include "microsoft(nek4k)"      };

};

```

P.S. I've added other material to the howto which might be interesting.

Use the history link on the howto to see  it http://gentoo-wiki.com/index.php?title=HOWTO_Microsoft_Natural_Ergonomic_Keyboard_4000&action=history

----------

## trantorvega

After further examinations I've commented and explained the pros and cons of your solution here

http://gentoo-wiki.com/Talk:HOWTO_Microsoft_Natural_Ergonomic_Keyboard_4000

I've yet to understand what kind of problems you had with your french layout by the way.

Waiting additional informations on that.

I've believe though that you didn't make all the necessary changes to the various xkb files and the various "Xkb*" options in xorg.conf. Remember that kbd (or the old keyboard) have different keycodes than evdev and, as I said in the Talk linked above, "XkbModel" must be set to "evdev" or an extension of it, like my custom "microsoftnek4k" that i show in the howto; the "pc105" I see in the xorg.conf you posted must therefore be replaced if you use the evdev driver.

P.S. xmodmap works just fine here. The problems you had experienced might follow from what said above.

----------

## truc

actually I've had masked the new xorg-7.1n and input driver to go with, because there was a problem when launching more than one Xserver, it seems the problem is gone with the new Beta nvidia drivers, so I've unmasked the new xorg, evdev, and the nvidia-drivers Beta.                                                                                                          

This is really different! first of all, my /dev/input/nek4k symlink no longer

*I now have an evdev man page:)

So I tried  to use evdev for both devices, the Layoiut thing now works, but there is still this problem with the favorite key.

If I still use keyboard for one of the device I don't have this problem  :Smile: 

And for xmodmap, actually, it already worked that's why I posted my xmodmap file. (it was just at the beginning that for an unknonw readon it doesn't work.

Gentoo-wiki is currently down, so I cannot check the discution about the pros and the cons of doing it my way. But will check it ASAP  :Smile: 

Since my symlink don't work anymore here is a part of my udev rules:

```
SUBSYSTEMS=="input", ATTRS{name}=="Razer Razer Diamondback Optical Mouse", NAME="input/event2"

DRIVERS=="usbhid", ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc00ip00", NAME="input/event0"

DRIVERS=="usbhid", ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc01ip01", NAME="input/event1"
```

and a part of my xorg.conf:

```
Section "ServerLayout"

        Identifier     "X.org Configured"

        Screen      0  "Screen0" 0 0

        InputDevice    "Mouse"           "CorePointer"

        InputDevice    "Keyboard0"       "CoreKeyboard"

        InputDevice    "Keyboard1"       "SendCoreEvents"

EndSection

Section "InputDevice"

        Identifier  "Keyboard0"

        Driver      "keyboard"

        #Driver     "evdev"

        #Option     "Device"            "/dev/input/event1"

        #Option      "XkbModel"                 "evdev"

        Option      "CoreKeyboard"

        Option      "XkbModel"          "pc105"

        Option      "XkbRules"          "xorg"

        Option      "XkbLayout"         "fr"

EndSection

Section "InputDevice"

        Identifier  "Keyboard1"

        #Driver      "keyboard"

        Driver      "evdev"

        Option      "Device"            "/dev/input/event0"

        #Option             "Name"              "Microsoft Natural� Ergonomic Keyboard 4000"

        #Option      "XkbModel"          "evdev"

        #Option      "XkbRules"          "xorg"

        #Option      "XkbLayout"         "fr"

EndSection

Section "InputDevice"

        Identifier  "Mouse"

        Driver      "evdev"

        Option      "Device"            "/dev/input/event2"

        Option      "Buttons"           "7"                                                                                                                                                    

        Option      "ZAxisMapping"      "4 5"                                                                                                                                                  

        Option      "Emulate3buttons"   "no" 

EndSection
```

my /etc/X11/xmodmap stays unchanged

```
keycode 166 = XF86AudioPrev 

keycode 167 = XF86AudioNext

keycode 121 = XF86AudioStop

keycode 172 = XF86AudioPlay

keycode 122 = XF86AudioLowerVolume

keycode 123 = XF86AudioRaiseVolume 

keycode 223 = XF86Mail

keycode 225 = XF86Search

keycode 180 = XF86WWW

keycode 148 = XF86Calculator

keycode 218 = XF86Launch1

keycode 219 = XF86Launch2

keycode 220 = XF86Launch3

keycode 221 = XF86Launch4

keycode 222 = XF86Launch5

keycode 191 = XF86ZoomIn

keycode 192 = XF86ZoomOut

keycode 187 = parenleft

keycode 188 = parenright

keycode 125 = equal
```

----------

## trantorvega

Thanks for making me notice the fact I am using X.org 7.1  :Idea: 

The evdev implementation, as far as i know, changed from 6.9 to 7.0. I don't know about 7.0 to 7.1.

Basically, if you read the recent addition to the howto describing how the evdev X driver generates keycodes, just now that kbd and keyboard generate different keycodes than evdev, therefore the kbd-generated keycode for Down Arrow is different than the evdev-generated keycode for Favorites, so in your case they do not overlap. On the other hand the key number 1 and the Print key are both managed by the same evdev-driven InputDevice, so they still have the same keycode. The problem is at kernel level, or rather in the fact that X and console do not accept keycodes higher than 255 (1 byte integers), so the right keycodes in the kernel driver for the six keys I mentioned in the howto cannot be used (the X evdev driver alter them truncating their values to 8 bits and causing those annoying overlaps, while the kbd driver and the console simply ignores them).

I've written to liyu about using lower keycodes for those keys, even if they would not be the proper ones listed by /usr/include/linux/input.h (being KEY_FAVORITES, KEY_FN_F1, KEY_FN_F2, KEY_FN_F3, KEY_FN_F4, KEY_FN_F5).

A good advice would also be to customise your xkb files with keycodes and symbols files adapted for this keyboard (the geometry file is not strictly necessary, even if quite complicate to write) and update then the rules file.

```

# setxkbmap -print

xkb_keymap {

        xkb_keycodes  { include "evdev+nek4k(nek4k)+aliases(qwerty)"    };

        xkb_types     { include "complete"      };

        xkb_compat    { include "complete"      };

        xkb_symbols   { include "pc(pc105)+it+inet(microsoftnek4k)"     };

        xkb_geometry  { include "microsoft(nek4k)"      };

};

```

You can also do the same, in a less standard way, with the old xmodmap (except setting the geometry).

XKB can be a little complicated thing sometimes.

Stay tuned to howto and related talk for changes. It's still a work in progress. (gento-wiki is up again).

P.S. The reason why I didn't use symlinks whas that the evdev X driver accept only /dev/input/event* names for the devices (man 4x evdev, one of the most obscure and frustrating man pages I've ever read, especially in the part regarding the capabilities bits).

DON'T USE event0 or 1, as a rule. They might be already existing if you plug in your mouse before your keyboard os samething like that. Using a higher number (event20 and 21 or similar) as in my howto should prevent nasty, even if occasional, surprises.

----------

## truc

 *Quote:*   

> P.S. The reason why I didn't use symlinks whas that the evdev X driver accept only /dev/input/event* names for the devices (man 4x evdev, one of the most obscure and frustrating man pages I've ever read, especially in the part regarding the capabilities bits).

 

I read that before, but as I said, with xF86-input-evdev-1.0.0.5, symlinks were working, but now they no longer work. And for the man page, I've been really frustrated till I unmask xorg-7.1 and its corresponding drivers, because, there was no man page before!

 *Quote:*   

> 
> 
> DON'T USE event0 or 1, as a rule. They might be already existing if you plug in your mouse before your keyboard os samething like that. Using a higher number (event20 and 21 or similar) as in my howto should prevent nasty, even if occasional, surprises.

 

That won't happen since I've got a rule for my mouse, and two rules for the keyboard, but, one day I may plug an other input device and have some problem, I will change that, even if there are very few chances that I have this problem.

 *talk: in the wiki wrote:*   

> Unfortunately the custom "One" key and the "Print" key are both managed by the same device so their codes inevitably overlap.

 

 :Question: 

Here is what I have: 

I've made some tests and startx with input/event0 only (see my udev rules:ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc00ip00" ) and the evdevdriver:

result: none of the normal keys was working, but every multimedia keys were working. (notethat the print didn't work)

That 's why I kept this input device as the seconderary keyboard (SendCoreEvents ). 

using my confiuration, here is the print key in xev, the "one" key ("XF86Launch1" from my settings)

 *Quote:*   

> KeyPress event, serial 29, synthetic NO, window 0x400001,
> 
>     root 0x107, subw 0x0, time 4057567850, (1,62), root:(659,597),
> 
>     state 0x10, keycode 111 (keysym 0xff61, Print), same_screen YES,
> ...

 

(super_R is the favorite key)

I don't seem to have the problem you were talking about?

 *Quote:*   

> I've written to liyu

 

I've also mailed him a week ago, but didn't get any answer, I hope you'll have more chances that I had  :Wink: 

(he must be fed up every one is writting him :/ )

----------

## trantorvega

I believe we don't understand each other properly.

 *trantorvega wrote:*   

> 
> 
> On the other hand the key number 1 and the Print key are both managed by the same evdev-driven InputDevice, so they still have the same keycode. 

 

If they are managed by the same device by logic I must refer to two additional keys, and therefore I cannot be referring to the good old Print key, which is not an additional key.

The only other possible match must be the non-F-locked version of F12, as i clearly stated in the howto. Of course if you have a french keyboard it won't be labelled Print, just like in my keyboard its label is "Stampa".  What matters are KEYCODES.

Please read, if you've not already done so, the howto with attention, in order to avoid further misunderstandings or misinterpretations. I realize it's long, but that's for a reason.

About your tries with event0 again I explained in the howto why that cannot possibly work. The use of two InputDevices (evdev+evdev or kbd+evdev) follows from that explanation.

 *truc wrote:*   

> 
> 
> I've also mailed him a week ago, but didn't get any answer, I hope you'll have more chances that I had 
> 
> (he must be fed up every one is writting him :/ )
> ...

 

I've received more than one answer.

See this thread http://www.ubuntuforums.org/showthread.php?t=229559 .

P.S. An additional thread here. https://forums.gentoo.org/viewtopic-t-390636-highlight-.html

It's the thread where powerman posted about the patches that I subsequently linked into the howto.

----------

## gudok

I have a problem using HOWTO.

I recompiled the kernel and all multimedia buttons are working now in console mode.

But I can`t get XServer working with two logical keyboards - it says:

```
(II) evdev brain: Rescanning devices (1).

(II) Keyboard2-usb-0000:00:02.1-1/input1: Found 1 absolute axes.

(II) Keyboard2-usb-0000:00:02.1-1/input1: Configuring as pointer.

(**) Keyboard2-usb-0000:00:02.1-1/input1: Configuring in Absolute mode.

(**) Keyboard2-usb-0000:00:02.1-1/input1: AbsoluteScreen: -1.

Backtrace:

0: /usr/bin/X(xf86SigHandler+0x84) [0x80c4334]

1: [0xffffe420]

2: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7f84638]

3: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7f856eb]

4: /usr/lib/xorg/modules/input/evdev_drv.so(evdevNewDriver+0x4c) [0xa7f8584c]

5: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7f843e8]

6: /usr/bin/X(InitInput+0x176) [0x809f7e6]

7: /usr/bin/X(main+0x35f) [0x806e56f]

8: /lib/tls/libc.so.6(__libc_start_main+0xc8) [0xa7d96ea8]

9: /usr/bin/X(FontFileCompleteXLFD+0xa9) [0x806d9d1]

Fatal server error:

Caught signal 11.  Server aborting

```

As you can see evdev detects second keyboard as mouse.

I also tried using "keyboard" driver for the first logical keyboard and "evdev" for the second one - the same result. It seems that "evdev" can work only with core keyboard device.

Can you help?

P.S.: I use Xorg-7.1.0-1 and Xorg-input-evdev-1.1.2-3 - they seem to be the latest versions.

----------

## truc

post your udev rules, ls -l /dev/input, the relevent section in xorg.conf (as I did before), if you've just modified your udev rules, don't forget to run udevstart.

----------

## gudok

 *truc wrote:*   

> post your udev rules, ls -l /dev/input, the relevent section in xorg.conf (as I did before), if you've just modified your udev rules, don't forget to run udevstart.

 

I didn`t change my udev rules - I use information from /proc/bus/input/devices:

```
I: Bus=0003 Vendor=046d Product=c01d Version=2100

N: Name="Logitech USB-PS/2 Optical Mouse"

P: Phys=usb-0000:00:02.0-1/input0

S: Sysfs=/class/input/input0

H: Handlers=event0 ts0 mouse0

B: EV=7

B: KEY=ff0000 0 0 0 0 0 0 0 0

B: REL=103

I: Bus=0003 Vendor=045e Product=00db Version=0173

N: Name="Microsoft Natural╝ Ergonomic Keyboard 4000"

P: Phys=usb-0000:00:02.1-1/input0

S: Sysfs=/class/input/input1

H: Handlers=kbd event1

B: EV=120003

B: KEY=10000 7 ff800000 7ff febeffdf f3cfffff ffffffff fffffffe

B: LED=7

I: Bus=0003 Vendor=045e Product=00db Version=0173

N: Name="Microsoft Natural╝ Ergonomic Keyboard 4000"

P: Phys=usb-0000:00:02.1-1/input1

S: Sysfs=/class/input/input2

H: Handlers=kbd event2

B: EV=10000f

B: KEY=7c0000 0 c0002 1400 0 0 1 10f80 287c407 ffff39fa d97157ff febeffdf ffefffff ffffffff fffffffe

B: REL=40

B: ABS=1 0

```

```
fors:~% ls -lR /dev/input

/dev/input:

ØâÞÓÞ 0

drwxr-xr-x 2 root root     100 2006-09-30 16:34 by-id

drwxr-xr-x 2 root root     140 2006-09-30 16:34 by-path

crw-rw---- 1 root root 13,  64 2006-09-30 16:34 event0

crw-rw---- 1 root root 13,  65 2006-09-30 16:34 event1

crw-rw---- 1 root root 13,  66 2006-09-30 16:34 event2

crw-rw---- 1 root root 13,  67 2006-09-30 16:34 event3

crw-rw---- 1 root root 13,  63 2006-09-30 16:34 mice

crw-rw---- 1 root root 13,  32 2006-09-30 16:34 mouse0

crw-rw---- 1 root root 13, 128 2006-09-30 16:34 ts0

/dev/input/by-id:

ØâÞÓÞ 0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse -> ../event0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 usb-Logitech_USB-PS.2_Optical_Mouse-mouse -> ../mouse0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 usb-Microsoft_Natural_Ergonomic_Keyboard_4000-event-kbd -> ../event1

/dev/input/by-path:

ØâÞÓÞ 0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 pci-0000:00:02.0-usb-0:1:1.0-event-mouse -> ../event0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 pci-0000:00:02.0-usb-0:1:1.0-mouse -> ../mouse0

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 pci-0000:00:02.1-usb-0:1:1.0-event-kbd -> ../event1

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 pci-0000:00:02.1-usb-0:1:1.1-event- -> ../event2

lrwxrwxrwx 1 root root 9 2006-09-30 16:34 platform-pcspkr-event-spkr -> ../event3

```

And here is my xorg.conf:

```
...

Section "InputDevice"

    Identifier          "Keyboard1"

        Driver          "evdev"

        Option         "Device"        "/dev/input/event1"

        Option          "CoreKeyboard"

        Option              "XkbRules"      "xorg"

        Option          "XkbModel"      "pc105"

        Option              "XkbLayout"     "us,ru"

        Option              "XkbVariant" ",winkeys"

        Option              "XkbOptions" "grp:shift_toggle,grp_led:scroll"

EndSection

Section "InputDevice"

    Identifier          "Keyboard2"

        Driver          "evdev"

        Option          "Device"        "/dev/input/event2"

        Option             "XkbRules"      "xorg"

        Option          "XkbModel"      "evdev"

        Option          "XkbModel"      "microsoftnek4k"

        Option              "XkbLayout"     "us,ru"

        Option             "XkbVariant" ",winkeys"

        Option             "XkbOptions" "grp:shift_toggle,grp_led:scroll"

EndSection

Section "InputDevice"

# Logitech MX510 mouse

        Identifier      "Mouse1"

        Driver          "evdev"

        Option          "Device" "/dev/input/event0"

        Option          "Buttons"       "10"

        Option          "ZAxisMapping"  "9 10"

        Option          "Resolution"    "800"

EndSection

...

    InputDevice         "Keyboard1"             "CoreKeyboard"

    InputDevice         "Keyboard2"

    InputDevice         "Mouse1"                  "CorePointer"

...

```

Adding "SendCoreEvents" to Keyboard2 doesn`t help, too. (In this case Xorg, of course, reports that Keyboard2 always sends core events).

----------

## truc

 *Quote:*   

> I didn`t change my udev rules

  why? just follow the howto..

----------

## gudok

 *truc wrote:*   

>  *Quote:*   I didn`t change my udev rules  why? just follow the howto..

 

OK - I`ve done it. Now I have event7, event8 for two logical keyboards and event9 for usb mouse.

```

fors:~% cat /etc/udev/rules.d/010-udev-my.rules

KERNEL=="event*",ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc01ip01", MODE="0644", NAME="input/event7"

KERNEL=="event*",ATTRS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc00ip00", MODE="0644", NAME="input/event8"

KERNEL=="event*",ATTRS{modalias}=="usb:v046DpC01Dd2100dc00dsc00dp00ic03isc01ip02", MODE="0644", NAME="input/event9"

```

Here is my new xorg.conf:

```
...

Section "InputDevice"

    Identifier          "Keyboard1"

        Driver          "evdev"

        Option          "Device"        "/dev/input/event7"

        Option          "CoreKeyboard"

    Option              "XkbRules"      "xorg"

        Option          "XkbModel"      "evdev"

    Option              "XkbLayout"     "us,ru"

    Option              "XkbVariant" ",winkeys"

    Option              "XkbOptions" "grp:shift_toggle,grp_led:scroll"

EndSection

Section "InputDevice"

    Identifier          "Keyboard2"

        Driver          "evdev"

        Option          "Device"        "/dev/input/event8"

        Option          "SendCoreEvents"

    Option              "XkbRules"      "xorg"

        Option          "XkbModel"      "evdev"

    Option              "XkbLayout"     "us,ru"

    Option              "XkbVariant" ",winkeys"

    Option              "XkbOptions" "grp:shift_toggle,grp_led:scroll"

EndSection

Section "InputDevice"

# Logitech MX510 mouse

        Identifier      "Mouse1"

        Driver          "evdev"

        Option          "Device" "/dev/input/event9"

        Option          "Buttons"       "10"

        Option          "ZAxisMapping"  "9 10"

        Option          "Resolution"    "800"

EndSection

...

    InputDevice         "Keyboard1"            "CoreKeyboard"

    InputDevice        "Keyboard2"

    InputDevice         "Mouse1"                "CorePointer"

...

```

Xorg message remains the same  :Sad: 

----------

## truc

 *Quote:*   

> Option              "XkbVariant" ",winkeys"

 

Is the coma normal?

Did you try without all your XKB options?

I mean something like this:

```
Section "InputDevice"

    Identifier          "Keyboard1"

        Driver          "evdev"

        Option          "Device"        "/dev/input/event7" 

        Option          "XkbModel"      "evdev"

EndSection
```

and if it still doesn't work give us the result of and everything you can  :Smile: 

```
 Xorg -version
```

 :Question: 

----------

## gudok

 *truc wrote:*   

>  *Quote:*   Option              "XkbVariant" ",winkeys" 
> 
> Is the coma normal?
> 
> 

 

Yes, it`s the only way of enabling winkeys.

I`ve just tried Xorg without all those options and got the same result.

Now xorg.conf is as the same:

 *Quote:*   

> Section "InputDevice"
> 
>         Identifier              "Keyboard1"
> 
>         Driver          "evdev"
> ...

 

And Xorg`s report:

```
(II) evdev brain: Rescanning devices (1).

(**) Option "CoreKeyboard"

(**) Keyboard1-usb-0000:00:02.1-1/input0: Core Keyboard

(**) Option "XkbModel" "evdev"

(II) evdev brain: Rescanning devices (2).

(**) Option "SendCoreEvents"

(**) Keyboard2-usb-0000:00:02.1-1/input1: always reports core events

(II) Keyboard2-usb-0000:00:02.1-1/input1: Found 1 absolute axes.

(II) Keyboard2-usb-0000:00:02.1-1/input1: Configuring as pointer.

(**) Keyboard2-usb-0000:00:02.1-1/input1: Configuring in Absolute mode.

(**) Keyboard2-usb-0000:00:02.1-1/input1: AbsoluteScreen: -1.

Backtrace:

0: /usr/bin/X11/X(xf86SigHandler+0x84) [0x80c4344]

1: [0xffffe420]

2: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7fa8638]

3: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7fa96eb]

4: /usr/lib/xorg/modules/input/evdev_drv.so(evdevNewDriver+0x4c) [0xa7fa984c]

5: /usr/lib/xorg/modules/input/evdev_drv.so [0xa7fa83e8]

6: /usr/bin/X11/X(InitInput+0x176) [0x809f7e6]

7: /usr/bin/X11/X(main+0x35f) [0x806e56f]

8: /lib/tls/libc.so.6(__libc_start_main+0xc8) [0xa7db4ea8]

9: /usr/bin/X11/X(FontFileCompleteXLFD+0xa9) [0x806d9d1]

Fatal server error:

Caught signal 11.  Server aborting

```

Xorg version:

```
X Window System Version 7.1.1

Release Date: 12 May 2006

X Protocol Version 11, Revision 0, Release 7.1.1

Build Operating System: UNKNOWN

Current Operating System: Linux fors.fds 2.6.17 #1 SMP Sat Sep 16 16:35:21 MSD 2006 i686

Build Date: 07 July 2006

        Before reporting problems, check http://wiki.x.org

        to make sure that you have the latest version.

Module Loader present

```

Some more info:

```
sh-3.1$ lsmod | grep evdev

evdev                   9344  2

```

----------

## truc

just to be sure

```
InputDevice "Keyboard1" "CoreKeyboard"

InputDevice "Keyboard2" "SendCoreEvents"

InputDevice "Mouse1" "CorePointer" 
```

 is in the serverLayout section right?

did you run udevstart since you 've modified your udev rules? ls -l /dev/input

----------

## gudok

 *truc wrote:*   

> just to be sure
> 
> ```
> InputDevice "Keyboard1" "CoreKeyboard"
> 
> ...

 

1)

```

fors:~% ls -l /dev/input

ØâÞÓÞ 0

drwxr-xr-x 2 root root     100 2006-10-01 22:08 by-id

drwxr-xr-x 2 root root     140 2006-10-01 22:08 by-path

crw-rw---- 1 root root 13,  67 2006-10-01 22:08 event3

crw-r--r-- 1 root root 13,  65 2006-10-01 22:08 event7

crw-r--r-- 1 root root 13,  66 2006-10-01 22:08 event8

crw-r--r-- 1 root root 13,  64 2006-10-01 22:08 event9

crw-rw---- 1 root root 13,  63 2006-10-01 22:08 mice

crw-rw---- 1 root root 13,  32 2006-10-01 22:08 mouse0

crw-rw---- 1 root root 13, 128 2006-10-01 22:08 ts0

```

event3 is a "PC speaker"

2) I even rebooted PC - udev identifiers devices in a proper way

----------

## trantorvega

Strangley enough the extended section reports to have two axes, one relative and one absolute, as well as a horizontal wheel. That might be adjusted with the bitmasks as reported in the evdev man page (If only they explained how to convert the bitmasks instead of just complaining about the annoying format they are avalaible in).

Nonetheless here is my Xorg log related output:

```

(II) evdev brain: Rescanning devices (2).

(**) Option "SendCoreEvents"

(**) Keyboard1-usb-0000:00:1d.7-3.2/input0: always reports core events

(**) Option "XkbRules" "xorg"

(**) Option "XkbModel" "microsoftnek4k"

(**) Option "XkbLayout" "it"

(II) evdev brain: Rescanning devices (3).

(**) Option "SendCoreEvents"

(**) Keyboard2-usb-0000:00:1d.7-3.2/input1: always reports core events

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Found 1 absolute axes.

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Configuring as pointer.

(**) Keyboard2-usb-0000:00:1d.7-3.2/input1: Configuring in Absolute mode.

(**) Keyboard2-usb-0000:00:1d.7-3.2/input1: AbsoluteScreen: -1 is not a valid screen.

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Found 1 relative axes.

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Configuring as pointer.

(**) Keyboard2-usb-0000:00:1d.7-3.2/input1: HWHEELRelativeAxisButtons: 6 7.

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Found 17 mouse buttons

(II) Keyboard2-usb-0000:00:1d.7-3.2/input1: Configured 19 mouse buttons

(**) Option "XkbRules" "xorg"

(**) Option "XkbModel" "microsoftnek4k"

(**) Option "XkbLayout" "it"

```

I've the feeling your problem is unrelated to the details of your configuration. It might be a bug of X or the evdev driver. Question: did you compile X yourself or did you employ some kind of precompiled package?

----------

## truc

I've just found that loading the module ehci-hcd, which is for usb2 support, prevents evdev devices from working properly. Actually the extra keys part of the keyboard is no longer working (and that's an other reason why I'm happy to use keyboard instead of evdev for the normal keys )

May be that's also your problem gudok  :Question:  try not loading this module (ehci-hcd) and startx, and see what happen

Does anybody has the same problem with evdev and ehci-hcd? 

I've tried compiling ehci-hcd not as a module in the kernel, it looks like it's working for evdev, but I don't know if my usb external drive is usb1 or usb2 now, how can I know?

trantorvega, I recently understood that the print key you were talking about was the F12 key when function keys are disable. I though you were talking about the printkey ( one of the magic syskeys, just above insert).

That's not a problem for me since I don't plan using them at all (cause I already do an intensive use of the F1-F12 keys).

----------

## wegrzyn

I followed the instructions in the wiki regarding the 4000 keyboard and when I do setxkbmap -print I get totally different output. Here is what I get:

xkb_keymap {

        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };

        xkb_types     { include "complete"      };

        xkb_compat    { include "complete"      };

        xkb_symbols   { include "pc(pc105)+latin+inet(microsoftpro)"    };

        xkb_geometry  { include "microsoft(natural)"    };

};

[I am using Xorg 1.1.1-r1]. I was wondering if anyone can point me in the right direction.

Thanks.

----------

## truc

I can't really help you on that, but, you can still try the other way I described above (there is also a note in the wiki about it), If you don't have that much time, it is really simpler

----------

## wegrzyn

I did the mods as detailed by 'Truc'  (see below) and proceeded to reboot my machine. When I tried to log back in I couldn't get the password to be accepted by the system! Has anyone seen this before?

Peace,

Chaz

What changes I made to xorg.conf per Truc...

Section "InputDevice"

    Identifier  "Keyboard0"

    Driver      "keyboard"

    Option "CoreKeyboard"

    Option "XkbRules"   "xorg"

    Option "XkbModel"   "pc105"

    Option "XkbLayout"  "fr"

EndSection

Section "InputDevice"

        Identifier  "Keyboard1"

        Driver      "evdev"

        Option      "Device"                         "/dev/input/event21"

        Option      "XkbModel"      "evdev"

        Option      "XkbLayout" "fr"

EndSection

----------

## truc

you set my XKBLayout!

```
 Option "XkbLayout" "fr" 
```

fr is for french:)

----------

## ppurka

Hi, 

   Going by the feedback in this thread, I decided to purchase the MS Natural Ergonomic keyboard. I have almost everything working as I want now, after following the directions in the wiki.  Thank you all for the nice instructions and tips.

   However, I noticed that some of the settings in my case was not exactly what was present in the wiki. I just want to highlight those points.

1. First my  */etc/udev/rules.d/10-nek4k.rules wrote:*   

> kernel=="event*",SYSFS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc00ip00", NAME="input/event20", MODE=0644
> 
> kernel=="event*",SYSFS{modalias}=="usb:v045Ep00DBd0173dc00dsc00dp00ic03isc01ip01", NAME="input/event21", MODE=0644

 I am not quite conversant with the udev rules files. But, I noticed that udev would not create the input/event2* files unless I put the MODE part after the NAME part. Maybe this is a recent modification in udev (have udev-103 installed).

2. I had at first used the xorg config present in the wiki, and had associated the input/event20 device with the CoreKeyboard.  I noticed that my NumLock/Capslock keys would work, but the corresponding leds would not turn on.  After I switched the CoreKeyboard to input/event21, the leds started showing the correct status.

3.  Later on, I used the "keyboard" driver as mentioned in this thread, and the evdev driver for input/event20 (as it was earlier). This got my keyboard working very nicely. As for the F-lock, I always have that turned on, so I guess duplicates between Fn-keys and Favourites is not something that bothers me. (As a bonus, my old PS/2 keyboard is also connected and it also works!)

Thank you again,

  ppurka.

----------

## kos

bought ms4000 a couple of days ago and tried to configure it as written in the wiki, but using 0.4.1 patches. Everything works except a few items:

 F keys don't work in console. They seem to send correct codes, but F2 doesn't toggle splash verbose/silent mode.

 in X My Favorites and Down send the same keycode. Spent a day trying various solutions, nothing helps. As I see from usbnek4k.c, if ascii_keycode==1 it must send F16 instead of My Favorites, but it somehow doesn't work. I suspect that hid-input.c must also be hacked.

 F-keys always send F1-F12 codes, despite F-Lock state. Both in console and X.

I'm using a slightly different way to configure xkb, without changing any files in /usr/share/X11/xkb. I prefer to store my settings in ~/.xkb and load them from .xsession using

```

xkbcomp -R/home/kos/.xkb xkb :0 >/dev/null 2>&1

```

Here's what I have there:

```

-rw-r--r--   1 kos users 9357 Jan  6 16:30 nek4k_geom

-rw-r--r--   1 kos users 1007 Jan  6 16:30 nek4k_keycodes

-rw-r--r--   1 kos users 1867 Jan  6 16:30 nek4k_sym

-rw-r--r--   1 kos users  249 Jan  6 16:30 remap_menu_sym

-rw-r--r--   1 kos users  344 Jan  6 16:32 xkb

```

xkb file:

```

xkb_keymap {

  xkb_keycodes  { include "evdev+aliases(qwerty)+nek4k_keycodes(nek4k)" };

  xkb_types     { include "complete" };

  xkb_compatibility     { include "complete" };

  xkb_symbols   { include "pc(pc105)+us+ru(winkeys):2+group(alt_shift_toggle)+nek4k_sym(microsoftnek4k)+remap_menu_sym(kos)" };

  xkb_geometry  { include "nek4k_geom(nek4k)" };

};

```

nek4k_geom is a snip directly from the wiki:

```

default xkb_geometry "nek4k" {

    // Approximate layout for a Microsoft Natural Keyboard

    description= "Microsoft Natural Ergonomic Keyboard 4000";

....

    alias <AC00> = <CAPS>;

    alias <AA00> = <LCTL>;

};

```

nek4k_keycodes is a slightly modified keycodes file from the wiki:

```

default xkb_keycodes "nek4k" {

        <WEB>   =       180;

        <FIND>  =       144;

        <MAIL>  =       163;

        <ZMUP>  =       168;

        <ZMDN>  =       169;

        <PREV>  =       166;

        <SUCC>  =       167;

        <EQUL>  =       125;

        <PARO>  =       187;

        <PARC>  =       188;

        <MUTE>  =       121;

        <VOLD>  =       122;

        <VOLU>  =       123;

        <PLAY>  =       172;

        <CALC>  =       148;

alias   <BKMK>  =       <DOWN>;

        <ONE>   =       196;

        <TWO>   =       197;

        <THRE>  =       198;

        <FOUR>  =       199;

        <FIVE>  =       200;

        <HELP>  =       146;

        <UNDO>  =       139;

        <REDO>  =       190;

        <NEW>   =       189;

        <OPEN>  =       142;

        <CLOS>  =       214;

        <REPL>  =       240;

        <FWD>   =       241;

        <SEND>  =       239;

        <SPLL>  =       193;

        <SAVE>  =       242;

alias   <PRNT>  =       <ONE>;

};

```

nek4k_sym:

```

// Microsoft Natural Ergonomic Keyboard 4000

partial alphanumeric_keys

xkb_symbols "microsoftnek4k" {

    key <WEB>   {       [ XF86HomePage ]       };

    key <FIND>   {       [ XF86Search ]       };

    key <MAIL>   {       [ XF86Mail ]       };

    key <ZMUP>   {       [ XF86ScrollUp ]       };

    key <ZMDN>   {       [ XF86ScrollDown ]       };

        //back and forward buttons on the bottom. I want them be pgdown & pgup

//    key <PREV>   {       [ XF86AudioPrev ]       };

//    key <SUCC>   {       [ XF86AudioNext ]       };

    key <PREV>   {       [ Prior ]       };

    key <SUCC>   {       [ Next ]       };

//    key <EQUL>   {       [ XF86Documents ]       };

//    key <PARO>   {       [ XF86Documents ]       };

//    key <PARC>   {       [ XF86Documents ]       };

    key <MUTE>   {       [ XF86AudioMute ]       };

    key <VOLU>   {       [ XF86AudioRaiseVolume ]       };

    key <VOLD>   {       [ XF86AudioLowerVolume ]       };

    key <PLAY>   {       [ XF86AudioPlay ]       };

    key <CALC>   {       [ XF86Calculator ]       };

    key <ONE>   {       [ XF86Documents ]       };

    key <TWO>   {       [ XF86AudioMedia ]       };

    key <THRE>   {       [ XF86AudioPrev ]       };

    key <FOUR>   {       [ XF86AudioNext ]       };

    key <FIVE>   {       [ XF86AudioStop ]       };

    key <HELP>   {       [ Help ]       };

    key <UNDO>   {       [ Undo ]       };

    key <REDO>   {       [ Redo ]       };

    key <NEW>   {       [ XF86New ]       };

    key <OPEN>   {       [ XF86Open ]       };

    key <CLOS>   {       [ XF86Close ]       };

    key <REPL>   {       [ XF86Reply ]       };

    key <FWD>   {       [ XF86MailForward ]       };

    key <SEND>   {       [ XF86Send ]       };

    key <SPLL>   {       [ XF86Spell ]       };

    key <SAVE>   {       [ XF86Save ]       };

};

```

remap_menu_sym is my own addition which makes Menu key to be Esc, Esc to be Mod3 and Super_L to be Mod4. In case anyone is interested:

```

xkb_symbols "kos" {

        //Make Menu to be Escape and

        //Make Escape to be Mod3 :)

        //Make left win key to be Mod4

        key <MENU> { [  Escape ] };

        key <ESC> { [   Hyper_L  ] };

        modifier_map Mod3 { Hyper_L };

        modifier_map Mod4 { Super_L };

};

```

----------

## ppurka

 *kos wrote:*   

>  F keys don't work in console. They seem to send correct codes, but F2 doesn't toggle splash verbose/silent mode.

 

The keyboard does not work until the kernel loads the modules. So, you will not be able to even select a different kernel from grub too. *Quote:*   

> 
> 
>  in X My Favorites and Down send the same keycode. Spent a day trying various solutions, nothing helps. As I see from usbnek4k.c, if ascii_keycode==1 it must send F16 instead of My Favorites, but it somehow doesn't work. I suspect that hid-input.c must also be hacked.

 As discussed in the wiki, and in this thread, you can set the CoreKeyboard to use keyboard instead of evdev. The other input device uses the evdev driver *Quote:*   

> 
> 
>  F-keys always send F1-F12 codes, despite F-Lock state. Both in console and X.
> 
> I'm using a slightly different way to configure xkb, without changing any files in /usr/share/X11/xkb. I prefer to store my settings in ~/.xkb and load them from .xsession using
> ...

 I don't know much about these configurations, but I followed the wiki exactly as written and used keyboard and evdev as driver and I do get different keycodes for different states of F-lock.

----------

## kos

 *ppurka wrote:*   

> 
> 
> The keyboard does not work until the kernel loads the modules. So, you will not be able to even select a different kernel from grub too.

 

I believe I have some different problem. Keyboard works in grub, and F2 doesn't work during shutdown as well, when the module is loaded.

Thanks.

update

I've tried to use "keyboard" driver for the core keyboard. "Protocol" option was commented out, XkbModel set to "pc105". As a result my keyboard went mad generating lots of garbage and eventually killed X after a few keystrokes.

----------

## ppurka

 *kos wrote:*   

> I believe I have some different problem. Keyboard works in grub, and F2 doesn't work during shutdown as well, when the module is loaded.

 Very surprising. Exactly the opposite happens with me. Maybe it is because I still have my ps/2 keyboard connected   :Rolling Eyes:  *Quote:*   

> update
> 
> I've tried to use "keyboard" driver for the core keyboard. "Protocol" option was commented out, XkbModel set to "pc105". As a result my keyboard went mad generating lots of garbage and eventually killed X after a few keystrokes.

 Yes, maybe I should have mentioned this in my earlier post. Just comment out the line 

```
    Option      "Device"        "/dev/input/event<num>"
```

 from your /etc/X11/xorg.conf, where this line corresponds to the driver keyboard.  I faced this problem too. In particular, my keyboard driver portion is like this:

```
Section "InputDevice"

    Identifier  "Keyboard2"

    Driver      "keyboard"

    Option      "CoreKeyboard"

#   Commenting out evdev, since we will use keyboard as driver, which will get rid of dupes {{{

#    Option      "Device"        "/dev/input/event21"

#    Option      "Protocol"      "evdev"

#    Option      "XkbModel"      "evdev"

#    Option      "XkbModel"      "microsoftnek4k"

# }}}

    Option      "XkbModel"          "pc105"

    Option      "XkbLayout"         "us"

    Option      "XkbRules"      "xorg"

EndSection
```

----------

## kos

 *ppurka wrote:*   

> Yes, maybe I should have mentioned this in my earlier post. Just comment out the line 
> 
> ```
>     Option      "Device"        "/dev/input/event<num>"
> ```
> ...

 

Thanks a lot, now "My Favorites" sends distinct keycode. Although I had to remap a couple dozens of buttons again, I was rewarded: now cursor keys work in vmware properly. With evdev they used to generate some weird scancodes there.

----------

## jasn

 *Sedrik wrote:*   

>  *masseya wrote:*   I know most of this thread has focused on larger keyboards, but if you're looking for a smaller ergonomic keyboard or interested in just trying out something new you might consider TypeMatrix.  (http://www.typematrix.com/)[snip] 
> 
> But then again that is not an ergonomic keyboard, simply an ordinary keyboard with the keys moved around

 

Actually it is an ergonomic keyboard. The faq on their website goes into their methodology around ergonomic keyboards at this URL. Linking to the press/reviews section of their website they have a review written by someone who regularly uses the Kinesis keyboard, and what they thought of the Typematrix. The review is here.

----------

## jasn

 *masseya wrote:*   

> I know most of this thread has focused on larger keyboards, but if you're looking for a smaller ergonomic keyboard or interested in just trying out something new you might consider TypeMatrix.  (http://www.typematrix.com/)

 

I'm a longtime Microsoft ergonomic keyboard user, but always on the lookout for something else. These keyboards look pretty cool. Their website offers some interesting information on their take on ergonomic keyboards. I'd get one just to try, except it's a little frustrating that they don't have a USB version already.. If you have any other information you'd like to pass on about your experience using these keyboards, (like a mini-review), I'm all ears.. Thanks..

----------

## Grunty

hi, i have to Microsoft Ergonomic 4000 and i am very pleased with it  :Smile:  however ive got all the buttons working except:-

(With F Lock off) 

Open (F5) 

Close (F6)

My Favorites 

Special Function keys 1-5 (at the top)

Zoom

all others fire a key code in xev

also from "cat /dev/input/event2" there is no output when i press the keys mentioned above

so i guess its a kernel problem.

anyone have any ideas?

Thanks,

           Grunty

----------

## truc

yep I have a *great* idea, start by reading *this* thread, instead of posting to it waiting for us to do *your* job

----------

## Grunty

i have read this thread but something dosent make sense on my system, and thought someone may have a idea what was up, but o well il keep digging around  :Smile: 

----------

## truc

yes keep digging, because the answer is in this thread

----------

## Grunty

forgot to install the patch  :Very Happy:  ( after reverting back to my old kernel used to other hardware trouble ) 

sorry for the trouble, truc.

----------

## truc

 *Grunty wrote:*   

> forgot to install the patch  ( after reverting back to my old kernel used to other hardware trouble ) 
> 
> sorry for the trouble, truc.

 

no trouble  :Smile: , I just think it's more helpfull to say, search here or there, than to say do that , issue this command and so on:)

glad you found it  :Very Happy: 

----------

## ppurka

 *truc wrote:*   

> yes keep digging, because the answer is in this thread

   :Laughing:   :Very Happy: 

BTW, I patched the 2.6.19 kernel using liyu's patch, and everything seems to be working fine.

----------

## kos

Everything is fine and msnek4k works except for one quite annoying problem: evdev behaves poorly under high CPU load, events are often repeated or reordered, so it's almost impossible to type when system is busy. Any solutionssssssssssssss?

----------

## Kasumi_Ninja

Just a quick question: does the basic features of this keyboard work 'out of the box'? I want to plug it in and start using it right away Maybe I'll try to get the multimedia keys working at later time.

----------

## ppurka

 *Aniruddha wrote:*   

> Just a quick question: does the basic features of this keyboard work 'out of the box'? I want to plug it in and start using it right away Maybe I'll try to get the multimedia keys working at later time.

 You will need to have the "keyboard" driver (and not evdev) in xorg.conf for the basic keys to work if you just plug it in.   I am not sure if you need to patch the kernel for this functionality.

----------

## ilm

Does anyone know what's going on with the wiki page for this keyboard?  It's still listed as "will be updated by the end of July 2007"...

----------

## ppurka

I guess some major changes happened in the meanwhile.  I have been unable to get the keyboard to work as earlier for kernel >=2.6.20.

So, the maintainer of that wiki page probably has not had the time to make complete updates.

----------

