diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 63c019d2cec360a2e1273725cc2cc28ec7b1a1db..201bff6e7fc8c26887ff53f88825d9501b6c7478 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -101,8 +101,8 @@
             <key-style
                 latin:styleName="settingsKeyStyle"
                 latin:code="@integer/key_settings"
-                latin:keyIcon="@drawable/sym_keyboard_settings_holo"
-                latin:iconPreview="@drawable/sym_keyboard_settings_holo"
+                latin:keyIcon="@drawable/sym_keyboard_settings"
+                latin:iconPreview="@drawable/sym_keyboard_settings"
                 latin:parentStyle="functionalKeyStyle" />
             <key-style
                 latin:styleName="spaceKeyStyle"
diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml
index 88dfab11612935fbe8345b5ccc236dd437afbc53..45cc8f5503a3eb3153670af64187e76924b2723b 100644
--- a/java/res/xml/kbd_qwerty_f1.xml
+++ b/java/res/xml/kbd_qwerty_f1.xml
@@ -23,39 +23,92 @@
 >
     <switch>
         <case
-            latin:mode="url"
+            latin:hasSettingsKey="true"
         >
-            <Key
-                latin:keyLabel="/"
-                latin:keyStyle="settingsPopupStyle" />
-        </case>
-        <case
-            latin:mode="email"
-        >
-            <Key
-                latin:keyLabel="\@"
-                latin:keyStyle="settingsPopupStyle" />
-        </case>
-        <default>
             <switch>
                 <case
-                    latin:hasVoiceKey="true"
+                    latin:mode="url"
                 >
                     <Key
-                        latin:keyStyle="micKeyStyle" />
+                        latin:keyLabel="/"
+                        latin:keyWidth="9.2%p"
+                        latin:keyStyle="settingsPopupStyle" />
                 </case>
-                <!-- latin:hasVoiceKey="false" -->
                 <case
-                    latin:navigateAction="true"
+                    latin:mode="email"
                 >
                     <Key
-                        latin:keyLabel="."
+                        latin:keyLabel="\@"
+                        latin:keyWidth="9.2%p"
                         latin:keyStyle="settingsPopupStyle" />
                 </case>
                 <default>
+                    <switch>
+                        <case
+                            latin:hasVoiceKey="true"
+                        >
+                            <Key
+                                latin:keyStyle="micKeyStyle"
+                                latin:keyWidth="9.2%p" />
+                        </case>
+                        <!-- latin:hasVoiceKey="false" -->
+                        <case
+                            latin:navigateAction="true"
+                        >
+                            <Key
+                                latin:keyLabel="."
+                                latin:keyWidth="9.2%p"
+                                latin:keyStyle="settingsPopupStyle" />
+                        </case>
+                        <default>
+                            <Key
+                                latin:keyLabel=","
+                                latin:keyWidth="9.2%p"
+                                latin:keyStyle="settingsPopupStyle" />
+                        </default>
+                    </switch>
+                </default>
+            </switch>
+        </case>
+        <!-- hasSettingsKey="false" -->
+        <default>
+            <switch>
+                <case
+                    latin:mode="url"
+                >
+                    <Key
+                        latin:keyLabel="/"
+                        latin:keyStyle="settingsPopupStyle" />
+                </case>
+                <case
+                    latin:mode="email"
+                >
                     <Key
-                        latin:keyLabel=","
+                        latin:keyLabel="\@"
                         latin:keyStyle="settingsPopupStyle" />
+                </case>
+                <default>
+                    <switch>
+                        <case
+                            latin:hasVoiceKey="true"
+                        >
+                            <Key
+                                latin:keyStyle="micKeyStyle" />
+                        </case>
+                        <!-- latin:hasVoiceKey="false" -->
+                        <case
+                            latin:navigateAction="true"
+                        >
+                            <Key
+                                latin:keyLabel="."
+                                latin:keyStyle="settingsPopupStyle" />
+                        </case>
+                        <default>
+                            <Key
+                                latin:keyLabel=","
+                                latin:keyStyle="settingsPopupStyle" />
+                        </default>
+                    </switch>
                 </default>
             </switch>
         </default>
diff --git a/java/res/xml/kbd_qwerty_row4.xml b/java/res/xml/kbd_qwerty_row4.xml
index 95be66dfa57b0539666a9a9e72e8b2e85db827e4..0951339296c690d9d2c9c93c84cde8d623bf0ae7 100644
--- a/java/res/xml/kbd_qwerty_row4.xml
+++ b/java/res/xml/kbd_qwerty_row4.xml
@@ -31,46 +31,68 @@
             >
                 <Key
                     latin:keyStyle="toSymbolKeyStyle"
-                    latin:keyWidth="15%p"
+                    latin:keyWidth="13.75%p"
                     latin:keyEdgeFlags="left" />
                 <Key
-                    latin:keyStyle="settingsKeyStyle" />
+                    latin:keyStyle="settingsKeyStyle"
+                    latin:keyWidth="9.2%p" />
                 <include
                     latin:keyboardLayout="@xml/kbd_qwerty_f1" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="30%p" />
+                    latin:keyWidth="35.83%p" />
+                <switch>
+                    <case
+                        latin:navigateAction="true"
+                    >
+                        <Key
+                            latin:keyStyle="tabKeyStyle"
+                            latin:keyLabelOption="popupHint"
+                            latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
+                            latin:keyWidth="9.2%p"
+                            latin:maxPopupKeyboardColumn="8" />
+                    </case>
+                    <default>
+                        <Key
+                            latin:keyLabel="."
+                            latin:keyLabelOption="popupHint"
+                            latin:popupCharacters="@string/alternates_for_punctuation"
+                            latin:keyWidth="9.2%p"
+                            latin:maxPopupKeyboardColumn="7"
+                            latin:keyStyle="functionalKeyStyle" />
+                    </default>
+                </switch>
             </case>
             <!-- latin:hasSettingsKey="false" -->
             <default>
                 <Key
                     latin:keyStyle="toSymbolKeyStyle"
-                    latin:keyWidth="20%p"
+                    latin:keyWidth="15%p"
                     latin:keyEdgeFlags="left" />
                 <include
                     latin:keyboardLayout="@xml/kbd_qwerty_f1" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:navigateAction="true"
-            >
-                <Key
-                    latin:keyStyle="tabKeyStyle"
-                    latin:keyLabelOption="popupHint"
-                    latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
-                    latin:maxPopupKeyboardColumn="8" />
-            </case>
-            <default>
-                <Key
-                    latin:keyLabel="."
-                    latin:keyLabelOption="popupHint"
-                    latin:popupCharacters="@string/alternates_for_punctuation"
-                    latin:maxPopupKeyboardColumn="7"
-                    latin:keyStyle="functionalKeyStyle" />
+                    latin:keyWidth="50%p" />
+                <switch>
+                    <case
+                        latin:navigateAction="true"
+                    >
+                        <Key
+                            latin:keyStyle="tabKeyStyle"
+                            latin:keyLabelOption="popupHint"
+                            latin:popupCharacters="@string/alternates_for_web_tab_punctuation"
+                            latin:maxPopupKeyboardColumn="8" />
+                    </case>
+                    <default>
+                        <Key
+                            latin:keyLabel="."
+                            latin:keyLabelOption="popupHint"
+                            latin:popupCharacters="@string/alternates_for_punctuation"
+                            latin:maxPopupKeyboardColumn="7"
+                            latin:keyStyle="functionalKeyStyle" />
+                    </default>
+                </switch>
             </default>
         </switch>
         <switch>
diff --git a/java/res/xml/kbd_symbols_f1.xml b/java/res/xml/kbd_symbols_f1.xml
index 0fb7136b9702b65c7ef785c8ee49f857e1308413..bd10477669a0977822c9a58fa569fca39867b9fd 100644
--- a/java/res/xml/kbd_symbols_f1.xml
+++ b/java/res/xml/kbd_symbols_f1.xml
@@ -23,16 +23,41 @@
 >
     <switch>
         <case
-            latin:hasVoiceKey="true"
+            latin:hasSettingsKey="true"
         >
-            <Key
-                latin:keyStyle="micKeyStyle" />
+            <switch>
+                <case
+                    latin:hasVoiceKey="true"
+                >
+                    <Key
+                        latin:keyStyle="micKeyStyle"
+                        latin:keyWidth="9.2%p" />
+                </case>
+                <!-- latin:hasVoiceKey="false" -->
+                <default>
+                    <Key
+                        latin:keyLabel=","
+                        latin:keyWidth="9.2%p"
+                        latin:keyStyle="settingsPopupStyle" />
+                </default>
+            </switch>
         </case>
-        <!-- latin:hasVoiceKey="false" -->
+        <!-- hasSettingsKey="false" -->
         <default>
-            <Key
-                latin:keyLabel=","
-                latin:keyStyle="settingsPopupStyle" />
+            <switch>
+                <case
+                    latin:hasVoiceKey="true"
+                >
+                    <Key
+                        latin:keyStyle="micKeyStyle" />
+                </case>
+                <!-- latin:hasVoiceKey="false" -->
+                <default>
+                    <Key
+                        latin:keyLabel=","
+                        latin:keyStyle="settingsPopupStyle" />
+                </default>
+            </switch>
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/kbd_symbols_row4.xml b/java/res/xml/kbd_symbols_row4.xml
index 704402aaf03eef09349f9bad6dee5f65b18402c3..9323d4fd117b9ccbf89bc27d1d11a4af2bf66ad9 100644
--- a/java/res/xml/kbd_symbols_row4.xml
+++ b/java/res/xml/kbd_symbols_row4.xml
@@ -31,35 +31,43 @@
             >
                 <Key
                     latin:keyStyle="toAlphaKeyStyle"
-                    latin:keyWidth="15%p"
+                    latin:keyWidth="13.75%p"
                     latin:keyEdgeFlags="left" />
                 <Key
-                    latin:keyStyle="settingsKeyStyle" />
+                    latin:keyStyle="settingsKeyStyle"
+                    latin:keyWidth="9.2%p" />
                 <include
                     latin:keyboardLayout="@xml/kbd_qwerty_f1" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="30%p" />
+                    latin:keyWidth="35.83%p" />
+                <Key
+                    latin:keyLabel="."
+                    latin:keyLabelOption="popupHint"
+                    latin:popupCharacters="@string/alternates_for_punctuation"
+                    latin:keyWidth="9.2%p"
+                    latin:maxPopupKeyboardColumn="7"
+                    latin:keyStyle="functionalKeyStyle" />
             </case>
             <!-- latin:hasSettingsKey="false" -->
             <default>
                 <Key
                     latin:keyStyle="toAlphaKeyStyle"
-                    latin:keyWidth="20%p"
+                    latin:keyWidth="15%p"
                     latin:keyEdgeFlags="left" />
                 <include
                     latin:keyboardLayout="@xml/kbd_symbols_f1" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
+                    latin:keyWidth="50%p" />
+                <Key
+                    latin:keyLabel="."
+                    latin:keyLabelOption="popupHint"
+                    latin:popupCharacters="@string/alternates_for_punctuation"
+                    latin:maxPopupKeyboardColumn="7"
+                    latin:keyStyle="functionalKeyStyle" />
             </default>
         </switch>
-        <Key
-            latin:keyLabel="."
-            latin:keyLabelOption="popupHint"
-            latin:popupCharacters="@string/alternates_for_punctuation"
-            latin:maxPopupKeyboardColumn="7"
-            latin:keyStyle="functionalKeyStyle" />
         <switch>
             <case
                 latin:mode="im"
diff --git a/java/res/xml/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml
index 9eb9b1d5a339ee9c40cb62aedd2102e5360ab35b..90a96e4bcaf17f87a2dd759b6aec221c80a13868 100644
--- a/java/res/xml/kbd_symbols_shift_row4.xml
+++ b/java/res/xml/kbd_symbols_shift_row4.xml
@@ -31,23 +31,29 @@
             >
                 <Key
                     latin:keyStyle="toAlphaKeyStyle"
-                    latin:keyWidth="15%p"
+                    latin:keyWidth="13.75%p"
                     latin:keyEdgeFlags="left" />
                 <Key
-                    latin:keyStyle="settingsKeyStyle" />
+                    latin:keyStyle="settingsKeyStyle"
+                    latin:keyWidth="9.2%p" />
                 <Key
                     latin:keyLabel="„"
                     latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛"
+                    latin:keyWidth="9.2%p"
                     latin:keyStyle="nonPasswordFunctionalKeyStyle" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="30%p" />
+                    latin:keyWidth="35.83%p" />
+                <Key
+                    latin:keyLabel="…"
+                    latin:keyWidth="9.2%p"
+                    latin:keyStyle="nonPasswordFunctionalKeyStyle" />
             </case>
             <!-- latin:hasSettingsKey="false" -->
             <default>
                 <Key
                     latin:keyStyle="toAlphaKeyStyle"
-                    latin:keyWidth="20%p"
+                    latin:keyWidth="15%p"
                     latin:keyEdgeFlags="left" />
                 <Key
                     latin:keyLabel="„"
@@ -55,12 +61,12 @@
                     latin:keyStyle="nonPasswordFunctionalKeyStyle" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
+                    latin:keyWidth="50%p" />
+                <Key
+                    latin:keyLabel="…"
+                    latin:keyStyle="nonPasswordFunctionalKeyStyle" />
             </default>
         </switch>
-        <Key
-            latin:keyLabel="…"
-            latin:keyStyle="nonPasswordFunctionalKeyStyle" />
         <switch>
             <case
                 latin:mode="im"