Bug 5783

Summary: XKB symbols/rules for Microsoft Natural Ergonomic Keyboard 4000
Product: xkeyboard-config Reporter: Christoph Lange <langec>
Component: GeneralAssignee: xkb
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: high CC: kirikaza, ralf-engels, sangu.xorg, Tanktalus
Version: unspecifiedKeywords: NEEDINFO
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Christoph Lange 2006-02-01 21:04:40 UTC
I created some XKB symbols and rules for Microsoft Natural Ergonomic Keyboard  
4000. The key differences between this keyboard and the "microsoftpro" keyboard  
are:  
  
* The "home page" key is <I02>  
* The "search" key is <FK17>  
* The favorite keys don't generate any scan codes in X.org 6.8.2 :-(  
 
CHANGES: 
 
Add to xkb/symbols: 
 
---- 
partial alphanumeric_keys 
xkb_symbols "microsoft4000" { 
    name[Group1]= "Microsoft Natural Ergonomic Keyboard 4000"; 
 
// Left Side 
    key <I02>   {       [ XF86HomePage          ]       }; 
    key <FK17>  {       [ XF86Search            ]       }; 
    key <I6C>   {       [ XF86Mail              ]       }; 
// Right Side 
    key <I20>   {       [ XF86AudioMute         ]       }; 
    key <I2E>   {       [ XF86AudioLowerVolume  ]       }; 
    key <I30>   {       [ XF86AudioRaiseVolume  ]       }; 
    key <I22>   {       [ XF86AudioPlay, XF86AudioPause ] }; 
    key <I21>   {       [ XF86Calculator        ]       }; 
// Below Space Key 
    key <I6A>   {       [ XF86Back              ]       }; 
    key <I69>   {       [ XF86Forward           ]       }; 
}; 
---- 
 
Add to symbols.dir: 
 
---- 
--p----- a------- inet(microsoft4000) 
---- 
 
Add to rules/xorg (after "microsoftpro" line): 
 
---- 
  microsoft4000 =       microsoft(natural) 
---- 
 
 
Add to rules/xorg.lst (after "microsoftpro" line): 
 
---- 
  microsoft4000 Microsoft Natural Ergonomic Keyboard 4000 
---- 
 
Add to rules/xorg.xml: 
 
---- 
    <model> 
      <configItem> 
        <name>microsoft4000</name> 
        <description>Microsoft Natural Ergonomic Keyboard 4000</description> 
        <!-- and, of course, some translations... --> 
      </configItem> 
    </model> 
----
Comment 1 Sergey V. Udaltsov 2006-02-02 09:39:55 UTC
Could you please have a look at "cherrycyboard". It seems it has all the keys
you need. Also, what I can do without any harm - expant "microsoftpro" with
those two keys. Would it be ok for you?
Comment 2 Christoph Lange 2006-02-02 19:57:18 UTC
(In reply to comment #1)
> Could you please have a look at "cherrycyboard". It seems it has all the keys
> you need.

I', sorry, but my X.org 6.8.2 doesn't include a symbol map for "cherrycyboard"
-- only for "cherryblue", "cherryblueb" and "cherrybluea". Some of them are
indeed called "CyBo@rd", but the symbol mappings are somewhat different from the
MS Nat. Erg. Kbd. 4000.

> Also, what I can do without any harm - expant "microsoftpro" with
> those two keys. Would it be ok for you?

Of course, thanks! -- I've already done so during testing. But anyway, will
those keys be included in the X.org distribution? Or are they already? (And,
BTW, how about the unsupported favorite keys and the zoom slider? -- Will they
be supported in 7.0?)
Comment 3 Sergey V. Udaltsov 2006-02-11 14:03:40 UTC
> I', sorry, but my X.org 6.8.2 doesn't include a symbol map for "cherrycyboard"
> -- only for "cherryblue", "cherryblueb" and "cherrybluea". Some of them are
> indeed called "CyBo@rd", but the symbol mappings are somewhat different from the
> MS Nat. Erg. Kbd. 4000.
Since this bug is filed agains xkeyboard-config - could you please try it? It
has this layout included.

> Of course, thanks! -- I've already done so during testing. But anyway, will
> those keys be included in the X.org distribution? Or are they already? (And,
> BTW, how about the unsupported favorite keys and the zoom slider? -- Will they
> be supported in 7.0?)
xkeyboard-config is not officially part of 7.0 - but most distros include it
anyway. And in 7.0 Release Notes it is recommended to use xkeyboard-config as
really maintained keyboard database.
Comment 4 Benjamin Close 2008-01-11 02:37:41 UTC
Bugzilla Upgrade Mass Bug Change

NEEDSINFO state was removed in Bugzilla 3.x, reopening any bugs previously listed as NEEDSINFO.

  - benjsc
    fd.o Wrangler
Comment 5 Sergey V. Udaltsov 2008-12-12 04:19:12 UTC
No reply for 2 years
Comment 6 Ralf Engels 2010-03-21 06:28:20 UTC
It seems that the original reporter got lost.
However I have the same problem. Microsoft Natural Keyboard 4000 is not supported even though it is probably one of the most sold natural keyboards.

In the current state only two problems exist:

1. Zoom keys are not supported
 That is not a problem that can be solved easy as the keyboard registers an additional USB device for them.

2. The Favorites keys on the top are not working.
 They are marked 1 to 5.

For the second problem I added the following keys to the evdev section in xkb/symbols/inet

    key <FK14>   {       [ XF86Launch3           ]       };
    key <FK15>   {       [ XF86Launch4           ]       };
    key <FK16>   {       [ XF86Launch5           ]       };
    key <FK17>   {       [ XF86Launch6           ]       };
    key <FK18>   {       [ XF86Launch7           ]       };

Note: I did not use XF86Launch1 and XF86Launch2 as they could not be grabbed under KDE for an unknown reason.
Also Qt adds 2 to the numbers anyway, so XF86Launch7 is displayed as "Favorite (9)"

It is still confusing that there is a Microsoft Natural Keyboard 7000 (which you can't buy anymore) and no 4000.
Comment 7 Christoph Lange 2010-03-22 07:44:17 UTC
(In reply to comment #6)
> It seems that the original reporter got lost.
I'm back here, just hadn't kept track of this ticket for a long time.
> 1. Zoom keys are not supported
>  That is not a problem that can be solved easy as the keyboard registers an
> additional USB device for them.
Thanks for that background information!
> 2. The Favorites keys on the top are not working.
>  They are marked 1 to 5.
> 
> For the second problem I added the following keys to the evdev section in
> xkb/symbols/inet
> 
>     key <FK14>   {       [ XF86Launch3           ]       };
>     key <FK15>   {       [ XF86Launch4           ]       };
>     key <FK16>   {       [ XF86Launch5           ]       };
>     key <FK17>   {       [ XF86Launch6           ]       };
>     key <FK18>   {       [ XF86Launch7           ]       };
Thanks a lot!
> Note: I did not use XF86Launch1 and XF86Launch2 as they could not be grabbed
> under KDE for an unknown reason.
For me they worked (KDE 4.4.1).  But I have experienced similar problems.  My KDE does not recognize Ctrl+Shift+F1.
> Also Qt adds 2 to the numbers anyway, so XF86Launch7 is displayed as "Favorite
> (9)"
That also happens to me.
> It is still confusing that there is a Microsoft Natural Keyboard 7000 (which
> you can't buy anymore) and no 4000.
Indeed.  I'm using the "7000" layout for my 4000 keyboard now.
Comment 8 Ralf Engels 2010-03-22 10:24:18 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > Note: I did not use XF86Launch1 and XF86Launch2 as they could not be grabbed
> > under KDE for an unknown reason.
> For me they worked (KDE 4.4.1).  But I have experienced similar problems.  My
> KDE does not recognize Ctrl+Shift+F1.
I tried to debug the problem with XF86Launch1. 
The kglobalaccel does not get the key events even though it grabs them. My impression is that they are either already grabbed by somebody or for some unknown reason not be able to be grabbed.
Maybe Ctrl+Shift+F1 has the same problem.

> > Also Qt adds 2 to the numbers anyway, so XF86Launch7 is displayed as "Favorite
> > (9)"
> That also happens to me.
The reason is that Qt gives the numbers 1 and 2 to other favorite keys. Nothing that should be changed until Qt5 at least.

> > It is still confusing that there is a Microsoft Natural Keyboard 7000 (which
> > you can't buy anymore) and no 4000.
> Indeed.  I'm using the "7000" layout for my 4000 keyboard now.
I would propose to add the five favorites to the 7000 layout and change the description in xorg.xml to point out that this layout also works for the 4000.
A comment in the rules file should say the same.


Comment 9 Ralf Engels 2010-04-27 11:35:21 UTC
I am not forgetting this and I still think it's quite important.
In my group three out of four people have 4000 keyboards.
Comment 10 Sergey V. Udaltsov 2010-08-08 12:45:33 UTC
Ralf, in the current symbols/inet(evdev) I see:
    key <FK13>   {      [ XF86Tools         ]       };
    key <FK14>   {      [ XF86Launch5       ]       };
    key <FK15>   {      [ XF86MenuKB        ]       };
What would you propose to do with existing mapping? Should we just add mappings for FK16-FK18?

I would appreciate the patch for symbols/inet (and rules/base.xml.in if you think that the info about 4000 model should be added).
Comment 11 Ralf Engels 2010-08-09 12:09:10 UTC
The FK15 symbol was added to the symbols after my bug entry. 
Also I don't know what keyboard uses
    key <FK14>   {      [ XF86Launch5       ]       };
    key <FK15>   {      [ XF86MenuKB        ]       };

If they are valid (I assume they are) then we have a conflict.
As I am not expert in keyboard definitions I can't decide if adding a new model is really the way to go. It appears that there are too many models already.
I am sure that we could merge some of the Microsoft definitions and add the missing keys there.

Could you tell me what you think is the best solution:
1. adding the missing keys to inet
2. adding and merging existing MS keyboard definitions
3. creating a new keyboard
Comment 12 Sergey V. Udaltsov 2010-08-09 12:52:51 UTC
This mapping was a result of fixing #25835

I merged:

http://cgit.freedesktop.org/xkeyboard-config/commit/?id=01d742bc5cd22543d21edb2101fec6558d4075db

I hope it is ok for you
Comment 13 Ralf Engels 2010-08-10 11:53:26 UTC
Perfect,
thank you.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.