Add a new preference item to show/hide the settings key.

bug: 2998722

Change-Id: Iac1641c338388fd8f85e0cf47e31afdaeb34c0c0
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index 971e229..9366099 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -24,4 +24,12 @@
     <string name="sentence_separators">.,!?)</string>
     <!-- Symbols that are suggested between words -->
     <string name="suggested_punctuations">!?,\u0022\u0027:()-/@_</string>
+
+    <!-- Option values to show/hide the settings key in onscreen keyboard -->
+    <!-- Automatically decide to show or hide the settings key -->
+    <string name="settings_key_mode_auto" translatable="false">0</string>
+    <!-- Always show the settings key -->
+    <string name="settings_key_mode_always_show" translatable="false">1</string>
+    <!-- Always hide the settings key -->
+    <string name="settings_key_mode_always_hide" translatable="false">2</string>
 </resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index bf8e987..56dceef 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -91,6 +91,27 @@
     <!-- Description for auto completion -->
     <string name="auto_complete_summary">Spacebar and punctuation automatically insert highlighted word</string>
     
+    <!-- Option to show/hide the settings key -->
+    <string name="prefs_settings_key">Show settings key</string>
+    <!-- Array of the settings key mode values -->
+    <string-array name="settings_key_modes_values" translatable="false">
+        <item>@string/settings_key_mode_auto</item>
+        <item>@string/settings_key_mode_always_show</item>
+        <item>@string/settings_key_mode_always_hide</item>
+    </string-array>
+    <!-- Option to automatically decide to show/hide the settings key -->
+    <string name="settings_key_mode_auto_name">Automatic</string>
+    <!-- Option to always show the settings key -->
+    <string name="settings_key_mode_always_show_name">Always show</string>
+    <!-- Option to always hide the settings key -->
+    <string name="settings_key_mode_always_hide_name">Always hide</string>
+    <!-- Array of the settings key modes -->
+    <string-array name="settings_key_modes">
+        <item>@string/settings_key_mode_auto_name</item>
+        <item>@string/settings_key_mode_always_show_name</item>
+        <item>@string/settings_key_mode_always_hide_name</item>
+    </string-array>
+
     <!-- Option to enable bigram completion -->
     <string name="bigram_suggestion">Bigram Suggestions</string>
     <!-- Description for auto completion -->
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 1794d4c..d9d6a15 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -165,48 +165,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -219,11 +355,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -235,7 +371,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -246,7 +381,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -259,7 +395,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -284,7 +457,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -297,13 +471,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -315,7 +487,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -326,7 +497,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -339,13 +511,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -358,12 +528,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-da/kbd_qwerty_black.xml b/java/res/xml-da/kbd_qwerty_black.xml
index 96bbd8c..700d4e2 100644
--- a/java/res/xml-da/kbd_qwerty_black.xml
+++ b/java/res/xml-da/kbd_qwerty_black.xml
@@ -164,42 +164,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -210,11 +326,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -223,8 +339,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -233,7 +348,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -244,8 +360,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -265,7 +412,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -276,13 +424,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -291,8 +437,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -301,7 +446,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -312,13 +458,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -328,12 +472,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index d569057..c8a2818 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -144,48 +144,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -198,11 +334,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -214,7 +350,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -225,7 +360,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -238,7 +374,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -263,7 +436,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -276,13 +450,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -294,7 +466,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -305,7 +476,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -318,13 +490,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -337,12 +507,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-de/kbd_qwerty_black.xml b/java/res/xml-de/kbd_qwerty_black.xml
index 791aa02..50e6489 100644
--- a/java/res/xml-de/kbd_qwerty_black.xml
+++ b/java/res/xml-de/kbd_qwerty_black.xml
@@ -143,42 +143,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -189,11 +305,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -202,8 +318,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -212,7 +327,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -223,8 +339,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -244,7 +391,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -255,13 +403,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -270,8 +416,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -280,7 +425,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -291,13 +437,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -307,12 +451,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 1eabd67..5ec5910 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -145,48 +145,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -199,11 +335,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -215,7 +351,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -226,7 +361,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -239,7 +375,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -264,7 +437,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -277,13 +451,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -295,7 +467,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -306,7 +477,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -319,13 +491,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -338,12 +508,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-fr/kbd_qwerty_black.xml b/java/res/xml-fr/kbd_qwerty_black.xml
index a4ed8eb..dc45c9e 100644
--- a/java/res/xml-fr/kbd_qwerty_black.xml
+++ b/java/res/xml-fr/kbd_qwerty_black.xml
@@ -144,42 +144,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -190,11 +306,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -203,8 +319,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -213,7 +328,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -224,8 +340,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -245,7 +392,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -256,13 +404,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -271,8 +417,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -281,7 +426,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -292,13 +438,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -308,12 +452,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index 21a2222..714c4f5 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -103,48 +103,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -157,11 +293,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -173,7 +309,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -184,20 +319,58 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
             android:keyWidth="15%p"
-            android:keyEdgeFlags="left"
-            android:isModifier="true" />
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -222,7 +395,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -235,13 +409,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -253,7 +425,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -264,7 +435,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -277,13 +449,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -296,12 +466,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-iw/kbd_qwerty_black.xml b/java/res/xml-iw/kbd_qwerty_black.xml
index 36cb8aa..eb65fbe 100644
--- a/java/res/xml-iw/kbd_qwerty_black.xml
+++ b/java/res/xml-iw/kbd_qwerty_black.xml
@@ -102,42 +102,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -148,11 +264,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -161,8 +277,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -171,7 +286,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -182,8 +298,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -203,7 +350,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -214,13 +362,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -229,8 +375,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -239,7 +384,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -250,13 +396,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -266,12 +410,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index da430b8..8bff104 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -165,48 +165,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -219,11 +355,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -235,7 +371,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -246,7 +381,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -259,7 +395,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -284,7 +457,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -297,13 +471,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -315,7 +487,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -326,7 +497,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -339,13 +511,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -358,12 +528,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-nb/kbd_qwerty_black.xml b/java/res/xml-nb/kbd_qwerty_black.xml
index 990d7af..bad8d0d 100644
--- a/java/res/xml-nb/kbd_qwerty_black.xml
+++ b/java/res/xml-nb/kbd_qwerty_black.xml
@@ -164,42 +164,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -210,11 +326,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -223,8 +339,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -233,7 +348,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -244,8 +360,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -265,7 +412,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -276,13 +424,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -291,8 +437,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -301,7 +446,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -312,13 +458,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -328,12 +472,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index b86a3d6..129e68e 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -143,48 +143,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -197,11 +333,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -213,7 +349,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -224,7 +359,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -237,7 +373,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -262,7 +435,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -275,13 +449,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -293,7 +465,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -304,7 +475,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -317,13 +489,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -336,12 +506,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-ru/kbd_qwerty_black.xml b/java/res/xml-ru/kbd_qwerty_black.xml
index 711d0be..02894ed 100644
--- a/java/res/xml-ru/kbd_qwerty_black.xml
+++ b/java/res/xml-ru/kbd_qwerty_black.xml
@@ -142,42 +142,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -188,11 +304,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -201,8 +317,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -211,7 +326,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -222,8 +338,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -243,7 +390,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -254,13 +402,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -269,8 +415,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -279,7 +424,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -290,13 +436,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -306,12 +450,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 7e24e07..5fb1ed3 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -136,48 +136,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -190,11 +326,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -206,7 +342,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -217,7 +352,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -230,7 +366,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -255,49 +428,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
-        android:rowEdgeFlags="bottom"
-    >
-        <Key
-            android:codes="@integer/key_symbol"
-            android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
-            android:keyEdgeFlags="left"
-            android:isModifier="true" />
-        <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
-            android:codes="@integer/key_f1"
-            android:keyIcon="@drawable/sym_keyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
-            android:codes="@integer/key_space"
-            android:keyIcon="@drawable/sym_keyboard_space"
-            android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
-            android:isModifier="true"
-            android:isRepeatable="true" />
-        <Key
-            android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
-            android:keyLabel=":-)"
-            android:keyOutputText=":-) "
-            android:popupKeyboard="@xml/popup_smileys"
-            android:keyWidth="25%p"
-            android:isModifier="true"
-            android:keyEdgeFlags="right" />
-    </Row>
-    <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -310,13 +442,51 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -329,12 +499,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-sr/kbd_qwerty_black.xml b/java/res/xml-sr/kbd_qwerty_black.xml
index a376e5f..73fc0d7 100644
--- a/java/res/xml-sr/kbd_qwerty_black.xml
+++ b/java/res/xml-sr/kbd_qwerty_black.xml
@@ -135,42 +135,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -181,11 +297,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -194,8 +310,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -204,7 +319,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -215,8 +331,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -236,7 +383,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -247,13 +395,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -262,8 +408,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -272,7 +417,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -283,13 +429,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -299,12 +443,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index efca9c0..ba51904 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -166,48 +166,184 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -220,11 +356,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p"
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -236,7 +372,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
@@ -247,7 +382,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -260,7 +396,44 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -285,7 +458,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -298,13 +472,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -316,7 +488,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -327,7 +498,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -340,13 +512,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -359,12 +529,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml-sv/kbd_qwerty_black.xml b/java/res/xml-sv/kbd_qwerty_black.xml
index f1f3653..68de10d 100644
--- a/java/res/xml-sv/kbd_qwerty_black.xml
+++ b/java/res/xml-sv/kbd_qwerty_black.xml
@@ -166,42 +166,158 @@
     </Row>
     <Row
         android:keyboardMode="@+id/mode_normal"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
         android:keyboardMode="@+id/mode_url"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -212,11 +328,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -225,8 +341,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
@@ -235,7 +350,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_email"
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -246,8 +362,39 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:keyWidth="10%p"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -267,7 +414,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -278,13 +426,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -293,8 +439,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -303,7 +448,8 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
+        android:keyWidth="10%p"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -314,13 +460,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -330,12 +474,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 4456287..311d43a 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -149,38 +149,30 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
@@ -191,36 +183,28 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_keyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
-            android:isModifier="true" />
-        <Key
             android:keyLabel="/"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_keyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isModifier="true"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_keyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:isModifier="true"
             android:keyEdgeFlags="right" />
     </Row>
@@ -231,6 +215,112 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_keyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
             android:keyWidth="15%p"
             android:isModifier="true"
             android:keyEdgeFlags="left" />
@@ -238,7 +328,82 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_keyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+            android:isModifier="true" />
+        <Key
+            android:keyLabel="/"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_keyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isModifier="true"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation"
+            android:isModifier="true" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_keyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:isModifier="true"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_keyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
             android:isModifier="true" />
         <Key
             android:keyLabel="\@"
@@ -263,7 +428,7 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -276,13 +441,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -294,7 +457,6 @@
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel=":-)"
@@ -305,7 +467,7 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -318,13 +480,11 @@
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_keyboard_settings"
             android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_keyboard_mic"
             android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_space"
@@ -337,12 +497,10 @@
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_keyboard_tab"
             android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:keyLabel="."
             android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p"
             android:isModifier="true" />
         <Key
             android:codes="@integer/key_return"
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index d40203d..ea506b6 100644
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -148,33 +148,26 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
@@ -184,31 +177,24 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
-            android:keyWidth="15%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="left" />
         <Key
-            android:codes="@integer/key_settings"
-            android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
-        <Key
-            android:keyLabel="/"
-            android:keyWidth="10%p" />
+            android:keyLabel="/" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
             android:iconPreview="@drawable/sym_keyboard_feedback_space"
-            android:keyWidth="30%p"
+            android:keyWidth="40%p"
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
             android:iconPreview="@drawable/sym_keyboard_feedback_return"
-            android:keyWidth="25%p"
+            android:keyWidth="20%p"
             android:keyEdgeFlags="right" />
     </Row>
     <Row
@@ -218,13 +204,166 @@
         <Key
             android:codes="@integer/key_symbol"
             android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:keyLabel="\@" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_im"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="40%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:keyLabel=":-)"
+            android:keyOutputText=":-) "
+            android:popupKeyboard="@xml/popup_smileys"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_webentry"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="20%p"
+            android:isRepeatable="true" />
+        <Key
+            android:codes="@integer/key_tab"
+            android:keyIcon="@drawable/sym_bkeyboard_tab"
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
+            android:keyWidth="20%p" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="20%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_normal_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
             android:keyWidth="15%p"
             android:keyEdgeFlags="left" />
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:codes="@integer/key_f1"
+            android:keyIcon="@drawable/sym_bkeyboard_mic"
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_url_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
+        <Key
+            android:keyLabel="/" />
+        <Key
+            android:codes="@integer/key_space"
+            android:keyIcon="@drawable/sym_bkeyboard_space"
+            android:iconPreview="@drawable/sym_keyboard_feedback_space"
+            android:keyWidth="30%p"
+            android:isRepeatable="true" />
+        <Key
+            android:keyLabel="."
+            android:popupKeyboard="@xml/popup_punctuation" />
+        <Key
+            android:codes="@integer/key_return"
+            android:keyIcon="@drawable/sym_bkeyboard_return"
+            android:iconPreview="@drawable/sym_keyboard_feedback_return"
+            android:keyWidth="25%p"
+            android:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        android:keyboardMode="@+id/mode_email_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key
+            android:codes="@integer/key_symbol"
+            android:keyLabel="@string/label_symbol_key"
+            android:keyWidth="15%p"
+            android:keyEdgeFlags="left" />
+        <Key
+            android:codes="@integer/key_settings"
+            android:keyIcon="@drawable/sym_bkeyboard_settings"
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:keyLabel="\@" />
         <Key
@@ -244,7 +383,7 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_im"
+        android:keyboardMode="@+id/mode_im_with_settings_key"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -255,13 +394,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -270,8 +407,7 @@
             android:isRepeatable="true" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:keyLabel=":-)"
             android:keyOutputText=":-) "
@@ -280,7 +416,7 @@
             android:keyEdgeFlags="right" />
     </Row>
     <Row
-        android:keyboardMode="@+id/mode_webentry"
+        android:keyboardMode="@+id/mode_webentry_with_settings_key"
         android:rowEdgeFlags="bottom"
     >
         <Key
@@ -291,13 +427,11 @@
         <Key
             android:codes="@integer/key_settings"
             android:keyIcon="@drawable/sym_bkeyboard_settings"
-            android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_settings" />
         <Key
             android:codes="@integer/key_f1"
             android:keyIcon="@drawable/sym_bkeyboard_mic"
-            android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_mic" />
         <Key
             android:codes="@integer/key_space"
             android:keyIcon="@drawable/sym_bkeyboard_space"
@@ -307,12 +441,10 @@
         <Key
             android:codes="@integer/key_tab"
             android:keyIcon="@drawable/sym_bkeyboard_tab"
-            android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-            android:keyWidth="10%p" />
+            android:iconPreview="@drawable/sym_keyboard_feedback_tab" />
         <Key
             android:keyLabel="."
-            android:popupKeyboard="@xml/popup_punctuation"
-            android:keyWidth="10%p" />
+            android:popupKeyboard="@xml/popup_punctuation" />
         <Key
             android:codes="@integer/key_return"
             android:keyIcon="@drawable/sym_bkeyboard_return"
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index fad3ebc..fbdead6 100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -121,20 +121,40 @@
                 android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
-    <Row  android:rowEdgeFlags="bottom">
+    <Row
+        android:keyboardMode="@+id/mode_symbols"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
+                android:keyWidth="20%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:isModifier="true"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
+                android:keyWidth="40%p"
+                android:iconPreview="@drawable/sym_keyboard_feedback_space"
+                android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="."
+                android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right"
+                android:iconPreview="@drawable/sym_keyboard_feedback_return"
+                android:isModifier="true"/>
+    </Row>
+
+    <Row
+        android:keyboardMode="@+id/mode_symbols_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
                 android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p" android:isModifier="true"/>
-        <Key android:codes="@integer/key_f1" android:keyWidth="10%p" android:isModifier="true"/>
+                android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="."
-                android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p" android:isModifier="true"/>
+                android:popupKeyboard="@xml/popup_punctuation" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:isModifier="true"/>
diff --git a/java/res/xml/kbd_symbols_black.xml b/java/res/xml/kbd_symbols_black.xml
index 7eae554..3bf1397 100644
--- a/java/res/xml/kbd_symbols_black.xml
+++ b/java/res/xml/kbd_symbols_black.xml
@@ -121,22 +121,39 @@
                 android:isRepeatable="true"/>
     </Row>
 
-    <Row  android:rowEdgeFlags="bottom">
+    <Row
+        android:keyboardMode="@+id/mode_symbols"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
+                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_f1"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
+                android:keyWidth="40%p"
+                android:iconPreview="@drawable/sym_keyboard_feedback_space"
+                android:isRepeatable="true"/>
+        <Key android:codes="46" android:keyLabel="."
+                android:popupKeyboard="@xml/popup_punctuation"/>
+        <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return" android:keyWidth="20%p" android:keyEdgeFlags="right"
+                android:iconPreview="@drawable/sym_keyboard_feedback_return"/>
+    </Row>
+
+    <Row
+        android:keyboardMode="@+id/mode_symbols_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
                 android:keyWidth="15%p" android:keyEdgeFlags="left"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
-                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
-        <Key android:codes="@integer/key_f1" android:keyWidth="10%p"/>
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"/>
+        <Key android:codes="@integer/key_f1"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="."
-                android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
-                android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                />
+                android:iconPreview="@drawable/sym_keyboard_feedback_return"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index b069391..b72ea50 100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -88,18 +88,39 @@
                 android:isRepeatable="true" android:isModifier="true"/>
     </Row>
     
-    <Row android:rowEdgeFlags="bottom">
+    <Row
+        android:keyboardMode="@+id/mode_symbols"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="20%p"
+                android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:keyLabel="„" android:isModifier="true"/>
+        <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
+                android:keyWidth="40%p"
+                android:iconPreview="@drawable/sym_keyboard_feedback_space"
+                android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:keyLabel="…" android:isModifier="true"/>
+        <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
+                android:keyWidth="20%p" android:keyEdgeFlags="right"
+                android:iconPreview="@drawable/sym_keyboard_feedback_return"
+                android:isModifier="true"/>
+    </Row>
+
+    <Row
+        android:keyboardMode="@+id/mode_symbols_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
                 android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p" android:isModifier="true"/>
-        <Key android:keyLabel="„" android:keyWidth="10%p"  android:isModifier="true"/>
+                android:isModifier="true"/>
+        <Key android:keyLabel="„" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true" android:isModifier="true"/>
-        <Key android:keyLabel="…" android:keyWidth="10%p"  android:isModifier="true"/>
+        <Key android:keyLabel="…" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:keyWidth="25%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
diff --git a/java/res/xml/kbd_symbols_shift_black.xml b/java/res/xml/kbd_symbols_shift_black.xml
index 250e085..b52c9d1 100644
--- a/java/res/xml/kbd_symbols_shift_black.xml
+++ b/java/res/xml/kbd_symbols_shift_black.xml
@@ -88,21 +88,39 @@
                 android:isRepeatable="true"/>
     </Row>
 
-    <Row android:rowEdgeFlags="bottom">
+    <Row
+        android:keyboardMode="@+id/mode_symbols"
+        android:rowEdgeFlags="bottom"
+    >
+        <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="20%p"
+                android:keyEdgeFlags="left"/>
+        <Key android:keyLabel="„" />
+        <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
+                android:keyWidth="40%p"
+                android:iconPreview="@drawable/sym_keyboard_feedback_space"
+                android:isRepeatable="true"/>
+        <Key android:keyLabel="…" />
+        <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
+                android:keyWidth="20%p" android:keyEdgeFlags="right"
+                android:iconPreview="@drawable/sym_keyboard_feedback_return" />
+    </Row>
+
+    <Row
+        android:keyboardMode="@+id/mode_symbols_with_settings_key"
+        android:rowEdgeFlags="bottom"
+    >
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
                 android:keyEdgeFlags="left"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
-                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
-        <Key android:keyLabel="„" android:keyWidth="10%p" />
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"/>
+        <Key android:keyLabel="„" />
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:isRepeatable="true"/>
-        <Key android:keyLabel="…" android:keyWidth="10%p" />
+        <Key android:keyLabel="…" />
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:keyWidth="25%p" android:keyEdgeFlags="right"
-                android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                />
+                android:iconPreview="@drawable/sym_keyboard_feedback_return" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 762ada0..2e6dffa 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -60,6 +60,15 @@
             />
 
     <ListPreference
+            android:key="settings_key"
+            android:title="@string/prefs_settings_key"
+            android:persistent="true"
+            android:entryValues="@array/settings_key_modes_values"
+            android:entries="@array/settings_key_modes"
+            android:defaultValue="@string/settings_key_mode_auto"
+            />
+
+    <ListPreference
             android:key="voice_mode"
             android:title="@string/voice_input"
             android:persistent="true"
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index 01c099e..0ccb7d9 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -39,11 +39,29 @@
     public static final int MODE_IM = 6;
     public static final int MODE_WEB = 7;
 
+    // Main keyboard layouts without the settings key
     public static final int KEYBOARDMODE_NORMAL = R.id.mode_normal;
     public static final int KEYBOARDMODE_URL = R.id.mode_url;
     public static final int KEYBOARDMODE_EMAIL = R.id.mode_email;
     public static final int KEYBOARDMODE_IM = R.id.mode_im;
     public static final int KEYBOARDMODE_WEB = R.id.mode_webentry;
+    // Main keyboard layouts with the settings key
+    public static final int KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY =
+            R.id.mode_normal_with_settings_key;
+    public static final int KEYBOARDMODE_URL_WITH_SETTINGS_KEY =
+            R.id.mode_url_with_settings_key;
+    public static final int KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY =
+            R.id.mode_email_with_settings_key;
+    public static final int KEYBOARDMODE_IM_WITH_SETTINGS_KEY =
+            R.id.mode_im_with_settings_key;
+    public static final int KEYBOARDMODE_WEB_WITH_SETTINGS_KEY =
+            R.id.mode_webentry_with_settings_key;
+
+    // Symbols keyboard layout without the settings key
+    public static final int KEYBOARDMODE_SYMBOLS = R.id.mode_symbols;
+    // Symbols keyboard layout with the settings key
+    public static final int KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY =
+            R.id.mode_symbols_with_settings_key;
 
     public static final String DEFAULT_LAYOUT_ID = "4";
     public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20100902";
@@ -75,9 +93,13 @@
         KEYBOARDMODE_URL,
         KEYBOARDMODE_EMAIL,
         KEYBOARDMODE_IM,
-        KEYBOARDMODE_WEB};
+        KEYBOARDMODE_WEB,
+        KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY,
+        KEYBOARDMODE_URL_WITH_SETTINGS_KEY,
+        KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY,
+        KEYBOARDMODE_IM_WITH_SETTINGS_KEY,
+        KEYBOARDMODE_WEB_WITH_SETTINGS_KEY };
 
-    final Context mContext;
     final LatinIME mInputMethodService;
 
     private KeyboardId mSymbolsId;
@@ -97,23 +119,32 @@
     private boolean mPreferSymbols;
     private int mSymbolsModeState = SYMBOLS_MODE_STATE_NONE;
 
+    // Indicates whether or not we have the settings key
+    boolean mHasSettingsKey;
+    private static final int SETTINGS_KEY_MODE_AUTO = R.string.settings_key_mode_auto;
+    private static final int SETTINGS_KEY_MODE_ALWAYS_SHOW = R.string.settings_key_mode_always_show;
+    // NOTE: No need to have SETTINGS_KEY_MODE_ALWAYS_HIDE here because it's not being referred to
+    // in the source code now.
+    // Default is SETTINGS_KEY_MODE_AUTO.
+    private static final int DEFAULT_SETTINGS_KEY_MODE = SETTINGS_KEY_MODE_AUTO;
+
     private int mLastDisplayWidth;
     private LanguageSwitcher mLanguageSwitcher;
     private Locale mInputLocale;
 
     private int mLayoutId;
 
-    KeyboardSwitcher(Context context, LatinIME ims) {
-        mContext = context;
+    KeyboardSwitcher(LatinIME ims) {
+        mInputMethodService = ims;
 
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ims);
         mLayoutId = Integer.valueOf(prefs.getString(PREF_KEYBOARD_LAYOUT, DEFAULT_LAYOUT_ID));
+        updateSettingsKeyState(prefs);
         prefs.registerOnSharedPreferenceChangeListener(this);
 
         mKeyboards = new HashMap<KeyboardId, SoftReference<LatinKeyboard>>();
         mSymbolsId = makeSymbolsId(false);
         mSymbolsShiftedId = makeSymbolsShiftedId(false);
-        mInputMethodService = ims;
     }
 
     /**
@@ -132,11 +163,15 @@
     }
 
     private KeyboardId makeSymbolsId(boolean hasVoice) {
-        return new KeyboardId(KBD_SYMBOLS[getCharColorId()], hasVoice);
+        return new KeyboardId(KBD_SYMBOLS[getCharColorId()], mHasSettingsKey ?
+                KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+                false, hasVoice);
     }
 
     private KeyboardId makeSymbolsShiftedId(boolean hasVoice) {
-        return new KeyboardId(KBD_SYMBOLS_SHIFT[getCharColorId()], hasVoice);
+        return new KeyboardId(KBD_SYMBOLS_SHIFT[getCharColorId()], mHasSettingsKey ?
+                KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+                false, hasVoice);
     }
 
     void makeKeyboards(boolean forceCreate) {
@@ -243,20 +278,22 @@
         mInputView.setKeyboard(keyboard);
         keyboard.setShifted(false);
         keyboard.setShiftLocked(keyboard.isShiftLocked());
-        keyboard.setImeOptions(mContext.getResources(), mMode, imeOptions);
+        keyboard.setImeOptions(mInputMethodService.getResources(), mMode, imeOptions);
         keyboard.setColorOfSymbolIcons(mIsAutoCompletionActive, isBlackSym());
+        // Update the settings key state because number of enabled IMEs could have been changed
+        updateSettingsKeyState(PreferenceManager.getDefaultSharedPreferences(mInputMethodService));
     }
 
     private LatinKeyboard getKeyboard(KeyboardId id) {
         SoftReference<LatinKeyboard> ref = mKeyboards.get(id);
         LatinKeyboard keyboard = (ref == null) ? null : ref.get();
         if (keyboard == null) {
-            Resources orig = mContext.getResources();
+            Resources orig = mInputMethodService.getResources();
             Configuration conf = orig.getConfiguration();
             Locale saveLocale = conf.locale;
             conf.locale = mInputLocale;
             orig.updateConfiguration(conf, null);
-            keyboard = new LatinKeyboard(mContext, id.mXml, id.mKeyboardMode);
+            keyboard = new LatinKeyboard(mInputMethodService, id.mXml, id.mKeyboardMode);
             keyboard.setVoiceMode(hasVoiceButton(id.mXml == R.xml.kbd_symbols
                     || id.mXml == R.xml.kbd_symbols_black), mHasVoice);
             keyboard.setLanguageSwitcher(mLanguageSwitcher, mIsAutoCompletionActive, isBlackSym());
@@ -281,7 +318,9 @@
             if (mode == MODE_PHONE) {
                 return new KeyboardId(KBD_PHONE_SYMBOLS[charColorId], hasVoice);
             } else {
-                return new KeyboardId(KBD_SYMBOLS[charColorId], hasVoice);
+                return new KeyboardId(KBD_SYMBOLS[charColorId], mHasSettingsKey ?
+                        KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+                        false, hasVoice);
             }
         }
         switch (mode) {
@@ -290,19 +329,27 @@
                         "getKeyboardId:" + mode + "," + imeOptions + "," + isSymbols);
                 /* fall through */
             case MODE_TEXT:
-                return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_NORMAL, true, hasVoice);
+                return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+                        KEYBOARDMODE_NORMAL_WITH_SETTINGS_KEY : KEYBOARDMODE_NORMAL,
+                        true, hasVoice);
             case MODE_SYMBOLS:
-                return new KeyboardId(KBD_SYMBOLS[charColorId], hasVoice);
+                return new KeyboardId(KBD_SYMBOLS[charColorId], mHasSettingsKey ?
+                        KEYBOARDMODE_SYMBOLS_WITH_SETTINGS_KEY : KEYBOARDMODE_SYMBOLS,
+                        false, hasVoice);
             case MODE_PHONE:
                 return new KeyboardId(KBD_PHONE[charColorId], hasVoice);
             case MODE_URL:
-                return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_URL, true, hasVoice);
+                return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+                        KEYBOARDMODE_URL_WITH_SETTINGS_KEY : KEYBOARDMODE_URL, true, hasVoice);
             case MODE_EMAIL:
-                return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_EMAIL, true, hasVoice);
+                return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+                        KEYBOARDMODE_EMAIL_WITH_SETTINGS_KEY : KEYBOARDMODE_EMAIL, true, hasVoice);
             case MODE_IM:
-                return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_IM, true, hasVoice);
+                return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+                        KEYBOARDMODE_IM_WITH_SETTINGS_KEY : KEYBOARDMODE_IM, true, hasVoice);
             case MODE_WEB:
-                return new KeyboardId(keyboardRowsResId, KEYBOARDMODE_WEB, true, hasVoice);
+                return new KeyboardId(keyboardRowsResId, mHasSettingsKey ?
+                        KEYBOARDMODE_WEB_WITH_SETTINGS_KEY : KEYBOARDMODE_WEB, true, hasVoice);
         }
         return null;
     }
@@ -351,7 +398,8 @@
             // called.
             symbolsShiftedKeyboard.enableShiftLock();
             symbolsShiftedKeyboard.setShiftLocked(true);
-            symbolsShiftedKeyboard.setImeOptions(mContext.getResources(), mMode, mImeOptions);
+            symbolsShiftedKeyboard.setImeOptions(mInputMethodService.getResources(),
+                    mMode, mImeOptions);
         } else if (mCurrentId.equals(mSymbolsShiftedId)) {
             LatinKeyboard symbolsKeyboard = getKeyboard(mSymbolsId);
             mCurrentId = mSymbolsId;
@@ -360,7 +408,7 @@
             // indicator, we need to call enableShiftLock() and setShiftLocked(false).
             symbolsKeyboard.enableShiftLock();
             symbolsKeyboard.setShifted(false);
-            symbolsKeyboard.setImeOptions(mContext.getResources(), mMode, mImeOptions);
+            symbolsKeyboard.setImeOptions(mInputMethodService.getResources(), mMode, mImeOptions);
         }
     }
 
@@ -445,11 +493,14 @@
         if (PREF_KEYBOARD_LAYOUT.equals(key)) {
             changeLatinKeyboardView(
                     Integer.valueOf(sharedPreferences.getString(key, DEFAULT_LAYOUT_ID)), false);
+        } else if (LatinIMESettings.PREF_SETTINGS_KEY.equals(key)) {
+            updateSettingsKeyState(sharedPreferences);
+            recreateInputView();
         }
     }
 
     public boolean isBlackSym () {
-        if (mInputView != null && mInputView.getSymbolColorSheme() == 1) {
+        if (mInputView != null && mInputView.getSymbolColorScheme() == 1) {
             return true;
         }
         return false;
@@ -471,4 +522,19 @@
                     .onAutoCompletionStateChanged(isAutoCompletion));
         }
     }
+
+    private void updateSettingsKeyState(SharedPreferences prefs) {
+        Resources resources = mInputMethodService.getResources();
+        final String settingsKeyMode = prefs.getString(LatinIMESettings.PREF_SETTINGS_KEY,
+                resources.getString(DEFAULT_SETTINGS_KEY_MODE));
+        // We show the settings key when 1) SETTINGS_KEY_MODE_ALWAYS_SHOW or
+        // 2) SETTINGS_KEY_MODE_AUTO and there are two or more enabled IMEs on the system
+        if (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_ALWAYS_SHOW))
+                || (settingsKeyMode.equals(resources.getString(SETTINGS_KEY_MODE_AUTO))
+                        && LatinIMEUtil.hasMultipleEnabledIMEs(mInputMethodService))) {
+            mHasSettingsKey = true;
+        } else {
+            mHasSettingsKey = false;
+        }
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index f80ecc6..ecfd416 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -356,7 +356,7 @@
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         mLanguageSwitcher = new LanguageSwitcher(this);
         mLanguageSwitcher.loadLocales(prefs);
-        mKeyboardSwitcher = new KeyboardSwitcher(this, this);
+        mKeyboardSwitcher = new KeyboardSwitcher(this);
         mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher);
         mSystemLocale = conf.locale.toString();
         mLanguageSwitcher.setSystemLocale(conf.locale);
@@ -984,7 +984,7 @@
 
     private void reloadKeyboards() {
         if (mKeyboardSwitcher == null) {
-            mKeyboardSwitcher = new KeyboardSwitcher(this, this);
+            mKeyboardSwitcher = new KeyboardSwitcher(this);
         }
         mKeyboardSwitcher.setLanguageSwitcher(mLanguageSwitcher);
         if (mKeyboardSwitcher.getInputView() != null
@@ -1122,11 +1122,6 @@
         }
     }
 
-    private boolean hasMultipleEnabledIMEs() {
-        return ((InputMethodManager) getSystemService(
-                INPUT_METHOD_SERVICE)).getEnabledInputMethodList().size() > 1;
-    }
-
     private void showInputMethodPicker() {
         ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
                 .showInputMethodPicker();
@@ -1134,7 +1129,7 @@
 
     private void onOptionKeyPressed() {
         if (!isShowingOptionDialog()) {
-            if (hasMultipleEnabledIMEs()) {
+            if (LatinIMEUtil.hasMultipleEnabledIMEs(this)) {
                 showOptionsMenu();
             } else {
                 launchSettings();
@@ -1144,7 +1139,7 @@
 
     private void onOptionKeyLongPressed() {
         if (!isShowingOptionDialog()) {
-            if (hasMultipleEnabledIMEs()) {
+            if (LatinIMEUtil.hasMultipleEnabledIMEs(this)) {
                 showInputMethodPicker();
             } else {
                 launchSettings();
diff --git a/java/src/com/android/inputmethod/latin/LatinIMESettings.java b/java/src/com/android/inputmethod/latin/LatinIMESettings.java
index 565c1e6..f9534d2 100644
--- a/java/src/com/android/inputmethod/latin/LatinIMESettings.java
+++ b/java/src/com/android/inputmethod/latin/LatinIMESettings.java
@@ -46,6 +46,7 @@
     private static final String PREDICTION_SETTINGS_KEY = "prediction_settings";
     private static final String VOICE_SETTINGS_KEY = "voice_mode";
     private static final String DEBUG_MODE_KEY = "debug_mode";
+    /* package */ static final String PREF_SETTINGS_KEY = "settings_key";
 
     private static final String TAG = "LatinIMESettings";
 
@@ -55,6 +56,7 @@
     private CheckBoxPreference mQuickFixes;
     private CheckBoxPreference mDebugMode;
     private ListPreference mVoicePreference;
+    private ListPreference mSettingsKeyPreference;
     private boolean mVoiceOn;
 
     private VoiceInputLogger mLogger;
@@ -68,6 +70,7 @@
         addPreferencesFromResource(R.xml.prefs);
         mQuickFixes = (CheckBoxPreference) findPreference(QUICK_FIXES_KEY);
         mVoicePreference = (ListPreference) findPreference(VOICE_SETTINGS_KEY);
+        mSettingsKeyPreference = (ListPreference) findPreference(PREF_SETTINGS_KEY);
         SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
         prefs.registerOnSharedPreferenceChangeListener(this);
 
@@ -93,6 +96,7 @@
         } else {
             updateVoiceModeSummary();
         }
+        updateSettingsKeySummary();
     }
 
     @Override
@@ -106,7 +110,7 @@
         (new BackupManager(this)).dataChanged();
         // If turning on voice input, show dialog
         if (key.equals(VOICE_SETTINGS_KEY) && !mVoiceOn) {
-            if (! prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff)
+            if (!prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff)
                     .equals(mVoiceModeOff)) {
                 showVoiceConfirmation();
             }
@@ -118,6 +122,13 @@
         }
         mVoiceOn = !(prefs.getString(VOICE_SETTINGS_KEY, mVoiceModeOff).equals(mVoiceModeOff));
         updateVoiceModeSummary();
+        updateSettingsKeySummary();
+    }
+
+    private void updateSettingsKeySummary() {
+        mSettingsKeyPreference.setSummary(
+                getResources().getStringArray(R.array.settings_key_modes)
+                [mSettingsKeyPreference.findIndexOfValue(mSettingsKeyPreference.getValue())]);
     }
 
     private void updateDebugMode() {
diff --git a/java/src/com/android/inputmethod/latin/LatinIMEUtil.java b/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
index 93ad407..34b5284 100644
--- a/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
+++ b/java/src/com/android/inputmethod/latin/LatinIMEUtil.java
@@ -16,6 +16,9 @@
 
 package com.android.inputmethod.latin;
 
+import android.view.inputmethod.InputMethodManager;
+
+import android.content.Context;
 import android.os.AsyncTask;
 import android.text.format.DateUtils;
 import android.util.Log;
@@ -72,4 +75,9 @@
             }
         }
     }
+
+    public static boolean hasMultipleEnabledIMEs(Context context) {
+        return ((InputMethodManager) context.getSystemService(
+                Context.INPUT_METHOD_SERVICE)).getEnabledInputMethodList().size() > 1;
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 3ae2e1c..5912355 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -643,7 +643,7 @@
         return mShowPreview;
     }
 
-    public int getSymbolColorSheme() {
+    public int getSymbolColorScheme() {
         return mSymbolColorScheme;
     }