diff --git a/ibm_space_saver.diff b/ibm_space_saver.diff
deleted file mode 100644
index 671ba00..0000000
--- a/ibm_space_saver.diff
+++ /dev/null
@@ -1,56 +0,0 @@
-Index: rules/base.lists.part
-===================================================================
---- rules/base.lists.part.orig
-+++ rules/base.lists.part
-@@ -73,6 +73,8 @@
- toshiba_s3000 trust trustda \
- unitekkb1925 yahoo
-
-+! $specialkbds = ibm_space_saver
-+
- // all layouts with 3rd and 4th groups
- ! $threelevellayouts = al az \
- be br bt \
-Index: rules/base.m_s.part
-===================================================================
---- rules/base.m_s.part.orig
-+++ rules/base.m_s.part
-@@ -1,4 +1,5 @@
- a4techKB21 = +inet(media_nav_common)
-+ $specialkbds = +group(%m)
- a4techKBS8 = +inet(media_nav_acpi_common)
- a4_rfkb23 = +inet(media_nav_acpi_common)
- asus_laptop = +inet(media_common)
-Index: rules/base.xml.in
-===================================================================
---- rules/base.xml.in.orig
-+++ rules/base.xml.in
-@@ -1051,6 +1051,12 @@
-
-
-
-+ ibm_space_saver
-+ <_description>IBM Space Saver
-+
-+
-+
-+
- macintosh
- <_description>Macintosh
- Apple
-Index: symbols/group
-===================================================================
---- symbols/group.orig
-+++ symbols/group
-@@ -352,6 +352,11 @@ xkb_symbols "rctrl_toggle" {
- };
- };
-
-+// Override broken Numlock key on some IBM keyboards
-+partial
-+xkb_symbols "ibm_space_saver" {
-+ key { [ Num_Lock, Num_Lock ] };
-+};
- // using the group(alt_caps_toggle) map, pressing:
- // Alt+Caps Lock toggles group
- // Caps Lock toggles caps lock
diff --git a/microsoftnek4k-keycodes.diff b/microsoftnek4k-keycodes.diff
deleted file mode 100644
index 4dddc6f..0000000
--- a/microsoftnek4k-keycodes.diff
+++ /dev/null
@@ -1,48 +0,0 @@
-Index: keycodes/nek4k
-===================================================================
---- keycodes/nek4k.orig
-+++ keycodes/nek4k
-@@ -2,10 +2,10 @@ default xkb_keycodes "nek4k" {
-
- = 180;
- = 225;
-- = 223;
-+ = 163;
-
-- = 191;
-- = 192;
-+ // = 191;
-+ // = 192;
-
- = 166;
- = 167;
-@@ -21,13 +21,13 @@ default xkb_keycodes "nek4k" {
-
- = 148;
-
--alias = ;
-+//alias = ;
-
-- = 218;
-- = 219;
-- = 220;
-- = 221;
-- = 222;
-+ = 192;
-+ = 193;
-+ = 194;
-+ = 195;
-+ = 196;
-
- = 146;
- = 139;
-@@ -39,7 +39,7 @@ alias = ;
- = 240;
- = 241;
- = 239;
-- = 193;
-+ // = 193;
- = 242;
--alias = ;
-+//alias = ;
- };
diff --git a/microsoftnek4k-symbols.diff b/microsoftnek4k-symbols.diff
deleted file mode 100644
index 15e0ceb..0000000
--- a/microsoftnek4k-symbols.diff
+++ /dev/null
@@ -1,75 +0,0 @@
-Index: symbols/inet
-===================================================================
---- symbols/inet.orig
-+++ symbols/inet
-@@ -1410,37 +1410,39 @@ xkb_symbols "microsoftmult" {
- // Microsoft Natural Ergonomic Keyboard 4000
- partial alphanumeric_keys
- xkb_symbols "microsoftnek4k" {
-- key { [ XF86WWW ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-- key { [ XF86Documents ] };
-+ key { [ XF86WWW ] };
-+ key { [ Find ] };
-+ key { [ XF86Mail ] };
-+ key { [ XF86ZoomIn ] };
-+ key { [ XF86ZoomOut ] };
-+ key { [ XF86AudioPrev ] };
-+ key { [ XF86AudioNext ] };
-+ key { [ equal ] };
-+ key { [ parenleft ] };
-+ key { [ parenright ] };
-+ key { [ XF86AudioMute ] };
-+ key { [ XF86AudioRaiseVolume ]};
-+ key { [ XF86AudioLowerVolume ]};
-+ key { [ XF86AudioPlay ] };
-+ key { [ XF86Calculator] };
-+ key { [ XF86Launch1 ] };
-+ key { [ XF86Launch2 ] };
-+ key { [ XF86Launch3 ] };
-+ key { [ XF86Launch4 ] };
-+ key { [ XF86Launch5 ] };
-+ key { [ Help ] };
-+ key { [ Undo ] };
-+ key { [ Redo ] };
-+ key { [ XF86New ] };
-+ key { [ XF86Open ] };
-+ key { [ XF86Close ] };
-+ key { [ XF86Reply ] };
-+ key { [ XF86MailForward ] };
-+ key { [ XF86Send ] };
-+ key { [ XF86Spell ] };
-+ key { [ XF86Save ] };
-+ key { [ XF86Favorites ] };
-+ key { [ Print ] };
- };
-
- // Oretec
diff --git a/microsoftnek4k.diff b/microsoftnek4k.diff
deleted file mode 100644
index 0d90f69..0000000
--- a/microsoftnek4k.diff
+++ /dev/null
@@ -1,222 +0,0 @@
-Index: geometry/microsoft
-===================================================================
---- geometry/microsoft.orig
-+++ geometry/microsoft
-@@ -530,3 +530,43 @@ xkb_geometry "elite" {
- alias = ;
- alias = ;
- };
-+
-+xkb_geometry "nek4k" {
-+
-+ // Approximate layout for a Microsoft Natural Keyboard
-+ description= "Microsoft Natural Ergonomic Keyboard 4000";
-+ width= 500;
-+ height= 260;
-+
-+ shape.cornerRadius= 1;
-+ shape "ZOOM" { { [ 16,15] } };
-+ shape "MUL1" { { [ 22,10] } };
-+ shape "MUL2" { { [ 20,10] } };
-+ shape "MUL3" { { [ 26,10] } };
-+ shape "DIR" { { [ 17,15] } };
-+ shape "LDEF" { { [ 18,18] }, { [2,1], [15,16] } };
-+ shape "FUNC" { { [ 18,15] }, { [3,1], [15,10] } };
-+ shape "TABK" { { [ 36,18] }, { [3,1], [34,16] } };
-+ shape "CAPS" { { [ 37,18] }, { [3,1], [33,16] } };
-+ shape "LFSH" { { [ 23,18] }, { [3,1], [21,16] } };
-+ shape "KEY~" { { [ 28,18] }, { [3,1], [25,15] } };
-+ shape "KEY6" { { [ 20,18] }, { [2,1], [16,16] } };
-+ shape "KEYB" { { [ 19,18] }, { [2,1], [15,16] } };
-+ shape "KEYT" { { [ 30,18] }, { [2,1], [26,16] } };
-+ shape "KEYG" { { [ 26,18] }, { [2,1], [22,16] } };
-+ shape "LCTL" {
-+ approx= { [ 33, 21 ] },
-+ { [ 0, 0], [ 33, 0 ], [ 33, 25 ], [ 0, 18 ] },
-+ { [ 2, 1], [ 30, 1 ], [ 30, 20 ], [ 2, 15 ] }
-+ };
-+ shape "LWIN" {
-+ approx= { [ 26, 26 ] },
-+ { [ 0, 0], [ 26, 0 ], [ 26, 28 ], [ 0, 25 ] },
-+ { [ 2, 1], [ 23, 1 ], [ 23, 23 ], [ 2, 21 ] }
-+ };
-+ shape "LALT" {
-+ approx= { [ 27, 29 ] },
-+ { [ 0, 0], [ 27, 0 ], [ 27, 30 ], [ 0, 28 ] },
-+ { [ 2, 1], [ 24, 1 ], [ 24, 26 ], [ 2, 24 ] }
-+ };
-+};
-Index: keycodes/Makefile.am
-===================================================================
---- keycodes/Makefile.am.orig
-+++ keycodes/Makefile.am
-@@ -12,6 +12,7 @@ fujitsu \
- hp \
- ibm \
- macintosh \
-+nek4k \
- sony \
- sun \
- xfree86 \
-Index: keycodes/nek4k
-===================================================================
---- /dev/null
-+++ keycodes/nek4k
-@@ -0,0 +1,45 @@
-+default xkb_keycodes "nek4k" {
-+
-+ = 180;
-+ = 225;
-+ = 223;
-+
-+ = 191;
-+ = 192;
-+
-+ = 166;
-+ = 167;
-+
-+ = 125;
-+ = 187;
-+ = 188;
-+
-+ = 121;
-+ = 122;
-+ = 123;
-+ = 172;
-+
-+ = 148;
-+
-+alias = ;
-+
-+ = 218;
-+ = 219;
-+ = 220;
-+ = 221;
-+ = 222;
-+
-+ = 146;
-+ = 139;
-+ = 190;
-+ = 189;
-+ = 142;
-+
-+ = 214;
-+ = 240;
-+ = 241;
-+ = 239;
-+ = 193;
-+ = 242;
-+alias = ;
-+};
-Index: rules/base.xml.in
-===================================================================
---- rules/base.xml.in.orig
-+++ rules/base.xml.in
-@@ -876,6 +876,13 @@
-
-
-
-+ microsoftnek4k
-+ <_description>Microsoft Natural Ergonomic Keyboard 4000
-+ Microsoft Inc.
-+
-+
-+
-+
- oretec
- <_description>Ortek MCK-800 MM/Internet keyboard
- Ortek
-Index: symbols/inet
-===================================================================
---- symbols/inet.orig
-+++ symbols/inet
-@@ -1423,6 +1423,42 @@ xkb_symbols "microsoftmult" {
- };
-
-
-+// Microsoft Natural Ergonomic Keyboard 4000
-+partial alphanumeric_keys
-+xkb_symbols "microsoftnek4k" {
-+ key { [ XF86WWW ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+ key { [ XF86Documents ] };
-+};
-+
- // Oretec
-
- // Oretec MCK-800 MM/Internet keyboard
-Index: keycodes/Makefile.in
-===================================================================
---- keycodes/Makefile.in.orig
-+++ keycodes/Makefile.in
-@@ -243,6 +243,7 @@ fujitsu \
- hp \
- ibm \
- macintosh \
-+nek4k \
- sony \
- sun \
- xfree86 \
-Index: rules/base.lists.part
-===================================================================
---- rules/base.lists.part.orig
-+++ rules/base.lists.part
-@@ -60,6 +60,7 @@
- logidinovo logidinovoedge \
- microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \
- microsoftoffice microsoftmult \
-+ microsoftnek4k \
- mx1998 mx2500 mx2750 \
- oretec \
- pc105 \
-Index: rules/base.m_g.part
-===================================================================
---- rules/base.m_g.part.orig
-+++ rules/base.m_g.part
-@@ -1,5 +1,6 @@
- microsoftelite = microsoft(elite)
- $msmodels = microsoft(natural)
-+ microsoftnek4k = microsoft(nek4k)
- dell101 = dell(dell101)
- dellm65 = dell(dellm65)
- latitude = dell(latitude)
-Index: rules/base.m_k.part
-===================================================================
---- rules/base.m_k.part.orig
-+++ rules/base.m_k.part
-@@ -6,6 +6,7 @@
- sun6 = sun(type6_usb)
- sun6euro = sun(type6tuv_usb)
- pc98 = xfree98(pc98)
-+ microsoftnek4k = evdev+nek4k(nek4k)
- $applealu = macintosh(alukbd)
- macintosh_hhk = macintosh(hhk)
- macintosh_old = macintosh(old)
diff --git a/p_suse.diff b/p_suse.diff
index d974e54..a0dd6cf 100644
--- a/p_suse.diff
+++ b/p_suse.diff
@@ -1,3 +1,5 @@
+- Add Multi_key to Control_R to get compose.Index: xkeyboard-config-2.1/rules/evdev.m_s.part
+
Index: symbols/pc
===================================================================
--- symbols/pc.orig
@@ -14,3 +16,16 @@ Index: symbols/pc
key