--- TWL4030_Keypad.kcm.orig	2012-05-02 09:45:00.000000000 +0200
+++ TWL4030_Keypad.kcm	2012-05-02 10:08:26.000000000 +0200
@@ -1,5 +1,5 @@
 # Copyright (C) 2010 The Android Open Source Project
-# Copyright (C) 2011 The NITDroid Open Source Project
+# Copyright (C) 2011, 2012 The NITDroid Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -14,11 +14,9 @@
 # limitations under the License.
 
 #
-# Generic key character map for full alphabetic US English PC style external keyboards.
+# Key mapping for the TWL4030 keypad used on the Nokia N950 hardware keyboard
 #
-# This file is intentionally very generic and is intended to support a broad rang of keyboards.
-# Do not edit the generic key character map to support a specific keyboard; instead, create
-# a new key character map file with the required keyboard configuration.
+# Based on: Generic key character map for full alphabetic US English
 #
 
 type FULL
@@ -29,183 +27,208 @@
     label:                              'A'
     base:                               'a'
     shift, capslock:                    'A'
-    ctrl, alt, meta, number:            '!'
+    alt, meta, number:                  '!'
+    ctrl:                               none
 }
 
 key B {
     label:                              'B'
     base:                               'b'
     shift, capslock:                    'B'
-    ctrl, alt, meta:                    '>'
+    alt, meta:                          '>'
+    ctrl:                               none
 }
 
 key C {
     label:                              'C'
     base:                               'c'
     shift, capslock:                    'C'
-    shift+alt:                          '\u00c7'
-    ctrl, alt, meta:                    ']'
+    alt, meta:                          '\u20ac'
+    ctrl:                               none
 }
 
 key D {
     label:                              'D'
     base:                               'd'
     shift, capslock:                    'D'
-    ctrl, alt, meta, number:            '&'
+    alt, meta, number:                  '&'
+    ctrl:                               none
 }
 
 key E {
     label:                              'E'
     base:                               'e'
     shift, capslock:                    'E'
-    ctrl, alt, meta, number:            '3'
+    alt, meta, number:                  '3'
+    ctrl:                               none
 }
 
 key F {
     label:                              'F'
     base:                               'f'
     shift, capslock:                    'F'
-    ctrl, alt, meta:                    '('
+    alt, meta:                          '('
+    ctrl:                               none
 }
 
 key G {
     label:                              'G'
     base:                               'g'
     shift, capslock:                    'G'
-    ctrl, alt, meta:                    ')'
+    alt, meta:                          ')'
+    ctrl:                               none
 }
 
 key H {
     label:                              'H'
     base:                               'h'
     shift, capslock:                    'H'
-    ctrl, alt, meta:                    '_'
+    alt, meta:                          '_'
+    ctrl:                               none
 }
 
 key I {
     label:                              'I'
     base:                               'i'
     shift, capslock:                    'I'
-    ctrl, alt, meta, number:            '8'
+    alt, meta, number:                  '8'
+    ctrl:                               none
 }
 
 key J {
     label:                              'J'
     base:                               'j'
     shift, capslock:                    'J'
-    ctrl, alt, meta:                    '-'
+    alt, meta:                          '-'
+    ctrl:                               none
 }
 
 key K {
     label:                              'K'
     base:                               'k'
     shift, capslock:                    'K'
-    ctrl, alt, meta:                    '+'
+    alt, meta:                          '+'
+    ctrl:                               none
 }
 
 key L {
     label:                              'L'
     base:                               'l'
     shift, capslock:                    'L'
-    ctrl, alt, meta:                    '#'
+    alt, meta:                          '#'
+    ctrl:                               none
 }
 
 key M {
     label:                              'M'
     base:                               'm'
     shift, capslock:                    'M'
-    ctrl, alt, meta:                    '='
+    alt, meta:                          '='
+    ctrl:                               none
 }
 
 key N {
     label:                              'N'
     base:                               'n'
     shift, capslock:                    'N'
-    ctrl, alt, meta:                    '%'
+    alt, meta:                          '%'
+    ctrl:                               none
 }
 
 key O {
     label:                              'O'
     base:                               'o'
     shift, capslock:                    'O'
-    ctrl, alt, meta, number:            '9'
+    alt, meta, number:                  '9'
+    ctrl:                               none
 }
 
 key P {
     label:                              'P'
     base:                               'p'
     shift, capslock:                    'P'
-    ctrl, alt, meta, number:            '0'
+    alt, meta, number:                  '0'
+    ctrl:                               none
 }
 
 key Q {
     label:                              'Q'
     base:                               'q'
     shift, capslock:                    'Q'
-    ctrl, alt, meta, number:            '1'
+    alt, meta, number:                  '1'
+    ctrl:                               none
 }
 
 key R {
     label:                              'R'
     base:                               'r'
     shift, capslock:                    'R'
-    ctrl, alt, meta, number:            '4'
+    alt, meta, number:                  '4'
+    ctrl:                               none
 }
 
 key S {
     label:                              'S'
     base:                               's'
     shift, capslock:                    'S'
-    ctrl, alt, meta, number:            '"'
+    alt, meta, number:                  '"'
+    ctrl:                               none
 }
 
 key T {
     label:                              'T'
     base:                               't'
     shift, capslock:                    'T'
-    ctrl, alt, meta, number:            '5'
+    alt, meta, number:                  '5'
+    ctrl:                               none
 }
 
 key U {
     label:                              'U'
     base:                               'u'
     shift, capslock:                    'U'
-    ctrl, alt, meta, number:            '7'
+    alt, meta, number:                  '7'
+    ctrl:                               none
 }
 
 key V {
     label:                              'V'
     base:                               'v'
     shift, capslock:                    'V'
-    ctrl, alt, meta, number:            '<'
+    alt, meta, number:                  '<'
+    ctrl:                               none
 }
 
 key W {
     label:                              'W'
     base:                               'w'
     shift, capslock:                    'W'
-    ctrl, alt, meta, number:            '2'
+    alt, meta, number:                  '2'
+    ctrl:                               none
 }
 
 key X {
     label:                              'X'
     base:                               'x'
     shift, capslock:                    'X'
-    ctrl, alt, meta:                    '$'
+    alt, meta:                          '$'
+    ctrl:                               none
 }
 
 key Y {
     label:                              'Y'
     base:                               'y'
     shift, capslock:                    'Y'
-    ctrl, alt, meta, number:            '6'
+    alt, meta, number:                  '6'
+    ctrl:                               none
 }
 
 key Z {
     label:                              'Z'
     base:                               'z'
     shift, capslock:                    'Z'
-    ctrl, alt, meta:                    '['
+    alt, meta:                          '\u00a3'
+    ctrl:                               none
 }
 
 key 0 {
@@ -301,15 +324,13 @@
 key COMMA {
     label, number:                      ','
     base:                               ','
-    shift:                              ';'
-    ctrl, alt, meta:                    '<'
+    ctrl, shift, alt, meta:             ';'
 }
 
 key PERIOD {
     label, number:                      '.'
     base:                               '.'
-    shift:                              ':'
-    ctrl, alt, meta:                    '>'
+    ctrl, shift, alt, meta:             ':'
 }
 
 key SLASH {
@@ -359,8 +380,7 @@
 key BACKSLASH {
     label, number:                      '?'
     base:                               '?'
-    shift:                              '\\'
-    ctrl, alt, meta:                    ']'
+    ctrl, alt, meta, shift:             '\\'
 }
 
 key SEMICOLON {
@@ -373,8 +393,7 @@
 key APOSTROPHE {
     label, number:                      '\''
     base:                               '\''
-    shift:                              '*'
-    ctrl, alt, meta:                    '|'
+    ctrl, shift, alt, meta:             '*'
 }
 
 ### Numeric keypad ###
@@ -515,8 +534,7 @@
 key AT {
     label, number:                      '@'
     base:                               '@'
-    shift:                              '/'
-    ctrl, alt, meta:                    '['
+    ctrl, shift, alt, meta:             '/'
 }
 
 key STAR {
