diff --git a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d584dad3d268405a5a38b435039da053ce6afe76
Binary files /dev/null and b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png differ
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 013f005d42a621e54fcd8778a56d0fd08de08cbd..f30499622ae2331766a7fae79c0ac9911583431e 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -20,7 +20,7 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
+    latin:keyWidth="11.949%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
@@ -31,40 +31,38 @@
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "Tab", I placed spaces around the char '-'
              and '+'. -->
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.470%p" />
         <Key
             latin:codes="45"
-            latin:keyLabel=" - " />
+            latin:keyLabel=" - "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="43"
-            latin:keyLabel=" + " />
+            latin:keyLabel=" + "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="49"
-            latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num1" />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num2" />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num3" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyLabel="@string/label_backspace_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -74,41 +72,39 @@
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "More", I placed spaces around the char ','
              and '.'. -->
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.470%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel=" , " />
+            latin:keyLabel=" , "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="46"
-            latin:keyLabel=" . " />
+            latin:keyLabel=" . "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="52"
-            latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num4" />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num5" />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num6" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -118,27 +114,26 @@
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="20.2%p" />
+            latin:horizontalGap="20.427%p" />
         <Key
             latin:codes="40"
-            latin:keyLabel=" ( " />
+            latin:keyLabel=" ( "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="41"
-            latin:keyLabel=" ) " />
+            latin:keyLabel=" ) "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="55"
-            latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num7" />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num8" />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num9" />
         <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
              the touch event on the area, "9" is intentionally not marked as a right edge key. -->
         </Row>
@@ -147,26 +142,23 @@
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="20.2%p" />
+            latin:horizontalGap="20.427%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="16.4%p" />
+            latin:keyWidth="16.085%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="42"
-            latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numstar" />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num0" />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numpound" />
         <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
              the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 618d2c3bc3ae33ecd52dd9e973b6c4724036961b..42a6c6115fb5e36720f13a95a894068fed02f8dd 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -20,7 +20,7 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
+    latin:keyWidth="11.949%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
@@ -31,43 +31,42 @@
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="45"
-            latin:keyLabel=" - " />
+            latin:keyLabel=" - "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="43"
-            latin:keyLabel=" + " />
+            latin:keyLabel=" + "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel="@string/label_pause_key" />
+            latin:keyLabel="@string/label_pause_key"
+            latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
              char '-' and '+'. -->
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="49"
-            latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num1" />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num2" />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num3" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyLabel="@string/label_backspace_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -77,44 +76,43 @@
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel=" , " />
+            latin:keyLabel=" , "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="46"
-            latin:keyLabel=" . " />
+            latin:keyLabel=" . "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="59"
-            latin:keyLabel="@string/label_wait_key" />
+            latin:keyLabel="@string/label_wait_key"
+            latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "More" and "Wait", I placed spaces around the
              char ',' and '.'. -->
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="52"
-            latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num4" />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num5" />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num6" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -124,30 +122,30 @@
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="16.1%p" />
+            latin:horizontalGap="16.406%p" />
         <Key
             latin:codes="40"
-            latin:keyLabel=" ( " />
+            latin:keyLabel=" ( "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="41"
-            latin:keyLabel=" ) " />
+            latin:keyLabel=" ) "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="78"
-            latin:keyLabel=" N " />
+            latin:keyLabel=" N "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="55"
-            latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num7" />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num8" />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num9" />
         <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
              the touch event on the area, "9" is intentionally not marked as a right edge key. -->
     </Row>
@@ -156,26 +154,23 @@
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="16.1%p" />
+            latin:horizontalGap="16.406%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="24.6%p" />
+            latin:keyWidth="24.127%p" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="42"
-            latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numstar" />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num0" />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numpound" />
         <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
              the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index 6000911f6fa599a1f9931dc4dbfa5300dba0e027..b45060497adf3c70996b9398e93bb91e6827b2cf 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -20,7 +20,6 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
diff --git a/java/res/xml-xlarge/kbd_qwerty_row1.xml b/java/res/xml-xlarge/kbd_qwerty_row1.xml
index 75420798353501242951fa99d176e6e666fa4f6f..48e7b322f87604e204f629bbb1e4e7d3b8aa79f8 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row1.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row1.xml
@@ -22,12 +22,14 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -74,7 +76,7 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row2.xml b/java/res/xml-xlarge/kbd_qwerty_row2.xml
index cf1a908674e6f8ef4ae717761d2ae2b6243e1af6..234aa0c1c94c477474584945edc3be312507e708 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row2.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row2.xml
@@ -21,12 +21,14 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_symbol_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -57,28 +59,11 @@
             latin:keyLabel="l"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_l" />
-        <switch>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyLabel="\@" />
-            </case>
-            <default>
-                <Key
-                    latin:keyLabel="\'"
-                    latin:manualTemporaryUpperCaseCode="34"
-                    latin:keyHintIcon="@drawable/key_hint_quote_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
-                    latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="&quot;" />
-            </default>
-        </switch>
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
diff --git a/java/res/xml-xlarge/kbd_qwerty_row3.xml b/java/res/xml-xlarge/kbd_qwerty_row3.xml
index cc3476cc774b3be369a50f5877877d486ffc5d2d..d58f2c0d508197b4e583e7dad9433654eda7c7a3 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row3.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row3.xml
@@ -21,12 +21,14 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_shift_key"
-            latin:keyWidth="13.1%p"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
@@ -82,7 +84,7 @@
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_shift_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml
index 63b5c2c6ad44a5f46ce3b9878ab5b14063ddc023..47c383c166f0d308a4dfdf20a5c33e794ff17557 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row4.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml
@@ -22,9 +22,11 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="15.1%p" />
+            latin:horizontalGap="16.404%p" />
         <switch>
             <case
                 latin:mode="email"
@@ -34,7 +36,7 @@
                     latin:keyOutputText=".com"
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_domains"
-                    latin:keyWidth="16.4%p" />
+                    latin:keyWidth="16.084%p" />
             </case>
             <!-- TODO: implement logical OR for <case> attribute -->
             <case
@@ -45,7 +47,7 @@
                     latin:keyOutputText=".com"
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_domains"
-                    latin:keyWidth="16.4%p" />
+                    latin:keyWidth="16.084%p" />
             </case>
             <default>
                 <Key
@@ -54,19 +56,19 @@
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_smileys" />
                 <Key
-                    latin:keyLabel="="
-                    latin:manualTemporaryUpperCaseCode="43"
-                    latin:keyHintIcon="@drawable/key_hint_plus_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
+                    latin:keyLabel="/"
+                    latin:manualTemporaryUpperCaseCode="64"
+                    latin:keyHintIcon="@drawable/key_hint_at_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="+" />
+                    latin:popupCharacters="\@" />
             </default>
         </switch>
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
         <switch>
             <case
@@ -75,14 +77,25 @@
                 <Key
                     latin:keyLabel="-" />
             </case>
+            <case
+                latin:mode="url"
+            >
+                <Key
+                    latin:keyLabel="/"
+                    latin:manualTemporaryUpperCaseCode="58"
+                    latin:keyHintIcon="@drawable/key_hint_colon_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+                    latin:popupKeyboard="@xml/kbd_popup_template"
+                    latin:popupCharacters=":" />
+            </case>
             <default>
                 <Key
-                    latin:keyLabel="-"
-                    latin:manualTemporaryUpperCaseCode="47"
-                    latin:keyHintIcon="@drawable/key_hint_slash_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_slash_large_holo"
+                    latin:keyLabel="\'"
+                    latin:manualTemporaryUpperCaseCode="34"
+                    latin:keyHintIcon="@drawable/key_hint_quote_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="/" />
+                    latin:popupCharacters="&quot;" />
             </default>
         </switch>
         <switch>
@@ -92,25 +105,14 @@
                 <Key
                     latin:keyLabel="_" />
             </case>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyLabel="_"
-                    latin:manualTemporaryUpperCaseCode="58"
-                    latin:keyHintIcon="@drawable/key_hint_colon_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
-                    latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters=":" />
-            </case>
             <default>
                 <Key
-                    latin:keyLabel="_"
-                    latin:manualTemporaryUpperCaseCode="64"
-                    latin:keyHintIcon="@drawable/key_hint_at_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
+                    latin:keyLabel="-"
+                    latin:manualTemporaryUpperCaseCode="95"
+                    latin:keyHintIcon="@drawable/key_hint_underline_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="\@" />
+                    latin:popupCharacters="_" />
             </default>
         </switch>
     </Row>
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index 354558e9d6576b42266bd1bea7b3a6ee3b5c2fc6..6ce8aad0b7dd3e68663a82d324fe01708faf0e04 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -20,18 +20,19 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -72,21 +73,21 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
-        <Key
-            latin:keyLabel="\@" />
         <Key
             latin:keyLabel="#" />
         <Key
@@ -123,35 +124,39 @@
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyLabel="&quot;"
+            latin:keyLabel="&lt;"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="“”«»˝" />
+            latin:popupCharacters="≤«‹" />
         <Key
-            latin:keyLabel="\'" />
+            latin:keyLabel="&gt;"
+            latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:popupCharacters="≥»›" />
         <Key
-            latin:keyLabel=":" />
+            latin:keyLabel="[" />
         <Key
-            latin:keyLabel=";" />
+            latin:keyLabel="]" />
         <Key
-            latin:keyLabel="/" />
+            latin:keyLabel="=" />
         <Key
-            latin:keyLabel="," />
+            latin:keyLabel=":" />
         <Key
-            latin:keyLabel="." />
+            latin:keyLabel=";" />
         <Key
             latin:keyLabel="!"
             latin:popupKeyboard="@xml/kbd_popup_template"
@@ -165,20 +170,32 @@
             latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="31.5%p" />
+            latin:horizontalGap="16.404%p" />
+        <Key
+            latin:keyLabel="/" />
+        <Key
+            latin:keyLabel="\@" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
+        <Key
+            latin:keyLabel="&quot;"
+            latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:popupCharacters="“”«»˝" />
+        <Key
+            latin:keyLabel="_" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index 5042b7227e594d86079573928ae4e4d93bed052a..3f4cc2626b4f902d0ef310abbb5c0aaed54fa127 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -20,18 +20,19 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -62,17 +63,19 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -87,12 +90,10 @@
             latin:keyLabel="^"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="↑↓←→" />
-         <Key
-            latin:keyLabel="_" />
         <Key
-            latin:keyLabel="="
+            latin:keyLabel="∞"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≠≈∞" />
+            latin:popupCharacters="≠≈" />
         <Key
             latin:keyLabel="±" />
         <Key
@@ -103,27 +104,21 @@
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
-        <Key
-            latin:keyLabel="&lt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≤«‹" />
-        <Key
-            latin:keyLabel="&gt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≥»›" />
         <Key
             latin:keyLabel="©" />
         <Key
@@ -131,13 +126,17 @@
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="â„¢" />
         <Key
-            latin:keyLabel="\\" />
+            latin:keyLabel="{" />
+        <Key
+            latin:keyLabel="}" />
         <Key
             latin:keyLabel="°"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="¶§" />
         <Key
-            latin:keyLabel="∞" />
+            latin:keyLabel="," />
+        <Key
+            latin:keyLabel="." />
         <Key
             latin:keyLabel="¡" />
         <Key
@@ -146,20 +145,22 @@
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="31.5%p" />
+            latin:horizontalGap="32.488%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
     </Row>
 </Keyboard>