diff --git a/java/res/values-sw600dp-land/dimens.xml b/java/res/values-sw600dp-land/dimens.xml
index 8a59c9b54257b2ee81e70993502455ac009de0d2..cc8443edb31111d9d3ab69ac6f115c76d106dac4 100644
--- a/java/res/values-sw600dp-land/dimens.xml
+++ b/java/res/values-sw600dp-land/dimens.xml
@@ -35,7 +35,8 @@
     <fraction name="key_bottom_gap_gb">5.200%p</fraction>
     <fraction name="key_horizontal_gap_gb">1.447%p</fraction>
 
-    <fraction name="key_bottom_gap_ics">4.0%p</fraction>
+    <fraction name="key_bottom_gap_ics">4.5%p</fraction>
+    <fraction name="key_horizontal_gap_ics">1.565%p</fraction>
     <fraction name="keyboard_bottom_padding_ics">0.0%p</fraction>
 
     <dimen name="popup_key_height">81.9dp</dimen>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index e254c41413609629d6b12a554c09a97b5333c799..2129db4c7b8aad73ea35127b2f18b4adfc73d09f 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -38,7 +38,8 @@
     <fraction name="key_bottom_gap_gb">4.625%p</fraction>
     <fraction name="key_horizontal_gap_gb">2.113%p</fraction>
 
-    <fraction name="key_bottom_gap_ics">4.0%p</fraction>
+    <fraction name="key_bottom_gap_ics">4.5%p</fraction>
+    <fraction name="key_horizontal_gap_ics">1.565%p</fraction>
     <fraction name="keyboard_bottom_padding_ics">4.0%p</fraction>
 
     <dimen name="more_keys_keyboard_key_horizontal_padding">6dp</dimen>
diff --git a/java/res/xml-sw600dp/row_dvorak4.xml b/java/res/xml-sw600dp/row_dvorak4.xml
index 14a5fd81d2b3a6a5a68c8889fd3097f5f68f45ea..0f6e2dd8e6ee473e85a0ea57324ebcc7287ada13 100644
--- a/java/res/xml-sw600dp/row_dvorak4.xml
+++ b/java/res/xml-sw600dp/row_dvorak4.xml
@@ -27,8 +27,8 @@
         <Key
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="13.0%p" />
-        <Key
-            latin:keyStyle="tabKeyStyle" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley" />
         <include
             latin:keyboardLayout="@xml/key_f1" />
         <include
diff --git a/java/res/xml-sw600dp/row_hebrew4.xml b/java/res/xml-sw600dp/row_hebrew4.xml
index 536b653972d4d654a4543f09e9b8f1062b89f928..1e04614abe69ff79e6f097c49586a1bcdca8153b 100644
--- a/java/res/xml-sw600dp/row_hebrew4.xml
+++ b/java/res/xml-sw600dp/row_hebrew4.xml
@@ -27,8 +27,8 @@
         <Key
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="13.0%p" />
-        <Key
-            latin:keyStyle="tabKeyStyle" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley" />
         <include
             latin:keyboardLayout="@xml/key_f1" />
         <include
diff --git a/java/res/xml-sw600dp/row_pcqwerty5.xml b/java/res/xml-sw600dp/row_pcqwerty5.xml
index 83bc83e6950848fadda9e00c80e32f1a35f7da8a..3283de178223850ca1b15a8eab51ddfdfd8c8127 100644
--- a/java/res/xml-sw600dp/row_pcqwerty5.xml
+++ b/java/res/xml-sw600dp/row_pcqwerty5.xml
@@ -41,9 +41,9 @@
                     latin:keyWidth="10.5%p" />
             </case>
             <default>
-                <Spacer
-                    latin:keyXPos="15.0%p"
-                    latin:keyWidth="10.5%p" />
+                <include
+                    latin:keyboardLayout="@xml/key_smiley"
+                    latin:keyXPos="18.5%p" />
             </default>
         </switch>
         <switch>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index 76ac3a0d05b871f2ee0127f787fcd50f144503b6..fb43b96fd9b918fb7465831b038404d52f30d09a 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -27,8 +27,8 @@
         <Key
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="13.0%p" />
-        <Key
-            latin:keyStyle="tabKeyStyle" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley" />
         <include
             latin:keyboardLayout="@xml/key_f1" />
         <include
diff --git a/java/res/xml-sw600dp/row_symbols4.xml b/java/res/xml-sw600dp/row_symbols4.xml
index d294e20cfcd66cee693dced957cc5f1ba6fabdc6..4c0ad2334039ac48d941ff7c801560f1a276a2d7 100644
--- a/java/res/xml-sw600dp/row_symbols4.xml
+++ b/java/res/xml-sw600dp/row_symbols4.xml
@@ -28,7 +28,7 @@
             latin:keyStyle="toAlphaKeyStyle"
             latin:keyWidth="13.0%p" />
         <Key
-            latin:keyStyle="tabKeyStyle" />
+            latin:keyStyle="smileyKeyStyle" />
         <Key
             latin:keyLabel="\@" />
         <include
diff --git a/java/res/xml-sw600dp/row_symbols_shift4.xml b/java/res/xml-sw600dp/row_symbols_shift4.xml
index 3a78c72000415eb5ddb74401c142062fff6376f8..23db193047d72793d3ebbdc1e62b3b014f08def8 100644
--- a/java/res/xml-sw600dp/row_symbols_shift4.xml
+++ b/java/res/xml-sw600dp/row_symbols_shift4.xml
@@ -28,7 +28,7 @@
             latin:keyStyle="toAlphaKeyStyle"
             latin:keyWidth="13.0%p" />
         <Key
-            latin:keyStyle="tabKeyStyle" />
+            latin:keyStyle="smileyKeyStyle" />
         <include
             latin:keyXPos="30.750%p"
             latin:keyboardLayout="@xml/key_space" />
diff --git a/java/res/xml-sw600dp/rows_arabic.xml b/java/res/xml-sw600dp/rows_arabic.xml
index 55223267fb338f3806eb3dbcd41fe5f7aefa6bf0..c796a508e89230d4090b2d94968babf9a2cbc8c5 100644
--- a/java/res/xml-sw600dp/rows_arabic.xml
+++ b/java/res/xml-sw600dp/rows_arabic.xml
@@ -46,10 +46,8 @@
         latin:keyWidth="7.6%p"
     >
         <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyWidth="10.0%p" />
-        <include
-            latin:keyboardLayout="@xml/rowkeys_arabic3" />
+            latin:keyboardLayout="@xml/rowkeys_arabic3"
+            latin:keyXPos="10.0%p" />
     </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_azerty.xml b/java/res/xml-sw600dp/rows_azerty.xml
index 3ec22d302aa22987254e9cc85b157e4728cd87ab..fbfecb34131be4a08dd8b60ecc91685f5bc180a3 100644
--- a/java/res/xml-sw600dp/rows_azerty.xml
+++ b/java/res/xml-sw600dp/rows_azerty.xml
@@ -53,9 +53,9 @@
             latin:keyboardLayout="@xml/rowkeys_azerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.5%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_bulgarian.xml b/java/res/xml-sw600dp/rows_bulgarian.xml
index a3b77cc125cdd8ee92d9c1d15581d5af202ca8c0..8c41f96346da7e0012eb0ee9e0ad926695cb1cce 100644
--- a/java/res/xml-sw600dp/rows_bulgarian.xml
+++ b/java/res/xml-sw600dp/rows_bulgarian.xml
@@ -53,9 +53,9 @@
             latin:keyboardLayout="@xml/rowkeys_bulgarian3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-9.0%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_colemak.xml b/java/res/xml-sw600dp/rows_colemak.xml
index aada5eb7a4e55f588da78a32b2dca0b8b9536096..b34957c5bf0650a0658a27badc6871d2ff08a9a6 100644
--- a/java/res/xml-sw600dp/rows_colemak.xml
+++ b/java/res/xml-sw600dp/rows_colemak.xml
@@ -55,9 +55,9 @@
             latin:keyboardLayout="@xml/rowkeys_colemak3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.5%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_dvorak.xml b/java/res/xml-sw600dp/rows_dvorak.xml
index aec4a5cf5c877e0bb02bf56e0e2f0cadf2b7fda5..d361c3e0ce0f736ec11e23a1d4de72705ac8fbb7 100644
--- a/java/res/xml-sw600dp/rows_dvorak.xml
+++ b/java/res/xml-sw600dp/rows_dvorak.xml
@@ -53,9 +53,9 @@
             latin:keyWidth="10.0%p" />
         <include
             latin:keyboardLayout="@xml/rowkeys_dvorak3" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.5%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_east_slavic.xml b/java/res/xml-sw600dp/rows_east_slavic.xml
index 26fd7dfe10a770dea324ff0ee445083f51843d54..3f8e50d15dedc39cbe04a71d0938704c54b2c9c2 100644
--- a/java/res/xml-sw600dp/rows_east_slavic.xml
+++ b/java/res/xml-sw600dp/rows_east_slavic.xml
@@ -56,8 +56,8 @@
             latin:keyboardLayout="@xml/rowkeys_east_slavic3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_farsi.xml b/java/res/xml-sw600dp/rows_farsi.xml
index 75800420ae4fa85650e7f66e0d02590f3a6bccf4..3b39b0af817f876ddc038e8f0380737ab1b306a7 100644
--- a/java/res/xml-sw600dp/rows_farsi.xml
+++ b/java/res/xml-sw600dp/rows_farsi.xml
@@ -52,9 +52,9 @@
             latin:keyboardLayout="@xml/rowkeys_farsi3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-9.0%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_georgian.xml b/java/res/xml-sw600dp/rows_georgian.xml
index d4c39af45c8f925c36cab54a85a374930851b9bf..2e166bd627b4146f7bbf670544d75c98621d9aa2 100644
--- a/java/res/xml-sw600dp/rows_georgian.xml
+++ b/java/res/xml-sw600dp/rows_georgian.xml
@@ -53,8 +53,8 @@
             latin:keyboardLayout="@xml/rowkeys_georgian3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_greek.xml b/java/res/xml-sw600dp/rows_greek.xml
index 8314222c3495dab86a111d4c5b13c20ade3b27cf..85d5c8a2336634b6dc4dac727c47302c235c089c 100644
--- a/java/res/xml-sw600dp/rows_greek.xml
+++ b/java/res/xml-sw600dp/rows_greek.xml
@@ -55,8 +55,8 @@
             latin:keyboardLayout="@xml/rowkeys_greek3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_hebrew.xml b/java/res/xml-sw600dp/rows_hebrew.xml
index 521473f63c5ba507d347122c3dc925bf01c3ef50..55ce69aa550df1ec67b8df7a483f0ad9b0301881 100644
--- a/java/res/xml-sw600dp/rows_hebrew.xml
+++ b/java/res/xml-sw600dp/rows_hebrew.xml
@@ -52,10 +52,6 @@
         <include
             latin:keyboardLayout="@xml/rowkeys_hebrew3"
             latin:keyXPos="10.0%p" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.5%p"
-            latin:keyWidth="fillRight" />
     </Row>
     <include
         latin:keyboardLayout="@xml/row_hebrew4" />
diff --git a/java/res/xml-sw600dp/rows_hindi.xml b/java/res/xml-sw600dp/rows_hindi.xml
index f46c1debbfc1757b1eb3601b712adee258cd643c..c26439faa3251ce0d00d6340c13ae9fc43c63e1f 100644
--- a/java/res/xml-sw600dp/rows_hindi.xml
+++ b/java/res/xml-sw600dp/rows_hindi.xml
@@ -53,8 +53,8 @@
             latin:keyboardLayout="@xml/rowkeys_hindi3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-7.5%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_nordic.xml b/java/res/xml-sw600dp/rows_nordic.xml
index 57104fa7dc43c51498dbb1d151535ab53af000ab..4cc10d031cb18196231836eeab0f5c687660851a 100644
--- a/java/res/xml-sw600dp/rows_nordic.xml
+++ b/java/res/xml-sw600dp/rows_nordic.xml
@@ -53,9 +53,9 @@
             latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-7.6%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_pcqwerty.xml b/java/res/xml-sw600dp/rows_pcqwerty.xml
index ff2f785eac7b3c039e9d5c37ec14777979562cc4..0c74114fd1e692bef149850c61dcccec9205bb54 100644
--- a/java/res/xml-sw600dp/rows_pcqwerty.xml
+++ b/java/res/xml-sw600dp/rows_pcqwerty.xml
@@ -62,9 +62,9 @@
             latin:keyWidth="15.0%p" />
         <include
             latin:keyboardLayout="@xml/rowkeys_pcqwerty4" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-9.0%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-15.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml b/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml
index 046bce9094976b4e6961e665c73a4846612dff1b..dd8df4e09b2aa2730da2f4ac416a14878edfc367 100644
--- a/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml
+++ b/java/res/xml-sw600dp/rows_pcqwerty_symbols.xml
@@ -61,10 +61,6 @@
         <include
             latin:keyboardLayout="@xml/rowkeys_pcqwerty4"
             latin:keyXPos="15.0%p" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-9.0%p"
-            latin:keyWidth="fillRight" />
     </Row>
     <include
         latin:keyboardLayout="@xml/row_pcqwerty5" />
diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml
index 8e8d5acb65ee748fc407d9e3f69228a07e9a72a9..9fc0e12b8cda3ee663c5d1f8e6298876ded81ef7 100644
--- a/java/res/xml-sw600dp/rows_qwerty.xml
+++ b/java/res/xml-sw600dp/rows_qwerty.xml
@@ -53,8 +53,8 @@
             latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_qwertz.xml b/java/res/xml-sw600dp/rows_qwertz.xml
index d8f5bc6c79d5483b5a056fbf29bbed35f89e386e..de86444e51db4557020bb1b929cb22aa8085f250 100644
--- a/java/res/xml-sw600dp/rows_qwertz.xml
+++ b/java/res/xml-sw600dp/rows_qwertz.xml
@@ -53,8 +53,8 @@
             latin:keyboardLayout="@xml/rowkeys_qwertz3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_south_slavic.xml b/java/res/xml-sw600dp/rows_south_slavic.xml
index 8636cbb24e8a842a5fcdb90f10d0bc7da8b77a99..80eea6d4374ccb437570caedf6da31afe1e37029 100644
--- a/java/res/xml-sw600dp/rows_south_slavic.xml
+++ b/java/res/xml-sw600dp/rows_south_slavic.xml
@@ -53,8 +53,8 @@
             latin:keyboardLayout="@xml/rowkeys_south_slavic3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
             latin:keyXPos="-9.0%p"
             latin:keyWidth="fillRight" />
     </Row>
diff --git a/java/res/xml-sw600dp/rows_spanish.xml b/java/res/xml-sw600dp/rows_spanish.xml
index 9451e42d7b6c2b4651c155e8e717d2f4716b0b90..6aef1d781e10e08b1b28f3eb51f3fa16e020d681 100644
--- a/java/res/xml-sw600dp/rows_spanish.xml
+++ b/java/res/xml-sw600dp/rows_spanish.xml
@@ -53,9 +53,9 @@
             latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.5%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml-sw600dp/rows_thai.xml b/java/res/xml-sw600dp/rows_thai.xml
index d4eaa10bb453dca502b45c88cdbd63ff0bd0856b..fea1bafd178e05f2b3e4234142cce87de79d044a 100644
--- a/java/res/xml-sw600dp/rows_thai.xml
+++ b/java/res/xml-sw600dp/rows_thai.xml
@@ -57,9 +57,9 @@
             latin:keyWidth="10.0%p" />
         <include
             latin:keyboardLayout="@xml/rowkeys_thai4" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-9.0%p"
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-10.0%p"
             latin:keyWidth="fillRight" />
     </Row>
     <include