diff --git a/java/res/layout/emoji_palettes_view.xml b/java/res/layout/emoji_palettes_view.xml
index 1c6da90ba124853b9b7c82977c69fca568d80a2c..2ce89329dc4f9b1c938576a85044fcaec72308a1 100644
--- a/java/res/layout/emoji_palettes_view.xml
+++ b/java/res/layout/emoji_palettes_view.xml
@@ -29,7 +29,7 @@
     <LinearLayout
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/suggestions_strip_height"
+        android:layout_height="@dimen/config_suggestions_strip_height"
     >
         <TabHost
             android:id="@+id/emoji_category_tabhost"
diff --git a/java/res/layout/hint_add_to_dictionary.xml b/java/res/layout/hint_add_to_dictionary.xml
index 68a9faf19f6dc54fae98b600c02f97e466d629d8..d429082604f5ef6ec591549fdd30e38987b0ab00 100644
--- a/java/res/layout/hint_add_to_dictionary.xml
+++ b/java/res/layout/hint_add_to_dictionary.xml
@@ -23,7 +23,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:textSize="@dimen/suggestion_text_size"
+    android:textSize="@dimen/config_suggestion_text_size"
     android:gravity="center"
     android:paddingLeft="0dp"
     android:paddingTop="0dp"
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 1e7a3844eca7f978397a73b92f6e7eac65fb9a28..ed387e5b2d7c3147f64af8bdcd14723b10a9a984 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -41,10 +41,10 @@
             android:id="@+id/suggestion_strip_view"
             android:layoutDirection="ltr"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/suggestions_strip_height"
+            android:layout_height="@dimen/config_suggestions_strip_height"
             android:gravity="center_vertical"
-            android:paddingRight="@dimen/suggestions_strip_padding"
-            android:paddingLeft="@dimen/suggestions_strip_padding"
+            android:paddingRight="@dimen/config_suggestions_strip_horizontal_padding"
+            android:paddingLeft="@dimen/config_suggestions_strip_horizontal_padding"
             style="?attr/suggestionStripViewStyle" />
 
         <!-- To ensure that key preview popup is correctly placed when the current system locale is
diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml
index 264325890f9fd5cfe70ef82f108ddb7d1a5b24cd..0869992c98fc1916e5311e5f795038a363e2052f 100644
--- a/java/res/layout/more_suggestions.xml
+++ b/java/res/layout/more_suggestions.xml
@@ -29,8 +29,8 @@
         android:id="@+id/more_suggestions_view"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        latin:keyLetterSize="@dimen/suggestion_text_size"
-        latin:keyLabelSize="@dimen/suggestion_text_size"
-        latin:keyHintLetterRatio="@fraction/more_suggestions_info_ratio"
+        latin:keyLetterSize="@dimen/config_suggestion_text_size"
+        latin:keyLabelSize="@dimen/config_suggestion_text_size"
+        latin:keyHintLetterRatio="@fraction/config_more_suggestions_info_ratio"
         latin:keyHintLetterColor="@android:color/white" />
 </LinearLayout>
diff --git a/java/res/layout/suggestion_word.xml b/java/res/layout/suggestion_word.xml
index c82a13c9967aa2e4c66155a96febd8042f577df2..47d2bd86432715fa054f0e684a4d381840455aaa 100644
--- a/java/res/layout/suggestion_word.xml
+++ b/java/res/layout/suggestion_word.xml
@@ -24,12 +24,12 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:minWidth="@dimen/suggestion_min_width"
-    android:textSize="@dimen/suggestion_text_size"
+    android:minWidth="@dimen/config_suggestion_min_width"
+    android:textSize="@dimen/config_suggestion_text_size"
     android:gravity="center"
-    android:paddingLeft="@dimen/suggestion_padding"
+    android:paddingLeft="@dimen/config_suggestion_text_horizontal_padding"
     android:paddingTop="0dp"
-    android:paddingRight="@dimen/suggestion_padding"
+    android:paddingRight="@dimen/config_suggestion_text_horizontal_padding"
     android:paddingBottom="0dp"
     android:hapticFeedbackEnabled="false"
     android:focusable="false"
diff --git a/java/res/layout/user_dictionary_add_word.xml b/java/res/layout/user_dictionary_add_word.xml
index bbf9b1b5becea9aebce1ff56d84c6c78ced81458..607f5c4a89a34aadb1ee226d397b04fa99f63675 100644
--- a/java/res/layout/user_dictionary_add_word.xml
+++ b/java/res/layout/user_dictionary_add_word.xml
@@ -52,7 +52,7 @@
         android:hint="@string/user_dict_settings_add_word_hint"
         android:imeOptions="flagNoFullscreen"
         android:inputType="textNoSuggestions"
-        android:maxLength="@integer/user_dictionary_max_word_length" >
+        android:maxLength="@integer/config_user_dictionary_max_word_length" >
 
         <requestFocus />
     </EditText>
diff --git a/java/res/layout/user_dictionary_add_word_fullscreen.xml b/java/res/layout/user_dictionary_add_word_fullscreen.xml
index 219485b6601e1654223d76ad97a465d2d7e4a5fd..9bcb189b48e8d5b9ed60d8b712115e7d8f58d87f 100644
--- a/java/res/layout/user_dictionary_add_word_fullscreen.xml
+++ b/java/res/layout/user_dictionary_add_word_fullscreen.xml
@@ -30,7 +30,7 @@
         android:hint="@string/user_dict_settings_add_word_hint"
         android:imeOptions="flagNoFullscreen"
         android:inputType="textNoSuggestions"
-        android:maxLength="@integer/user_dictionary_max_word_length" >
+        android:maxLength="@integer/config_user_dictionary_max_word_length" >
 
         <requestFocus />
     </EditText>
@@ -61,7 +61,7 @@
             android:hint="@string/user_dict_settings_add_shortcut_hint"
             android:imeOptions="flagNoFullscreen"
             android:inputType="textNoSuggestions"
-            android:maxLength="@integer/user_dictionary_max_word_length" />
+            android:maxLength="@integer/config_user_dictionary_max_word_length" />
 
         <TextView
             android:id="@+id/user_dictionary_add_locale_label"
diff --git a/java/res/values-land/config.xml b/java/res/values-land/config.xml
index 2cfca486b7b0f3f621a33de379810d6498097943..6cf165696093c784f0a271fc213e83d5e32244b5 100644
--- a/java/res/values-land/config.xml
+++ b/java/res/values-land/config.xml
@@ -22,66 +22,64 @@
 <resources>
     <bool name="config_use_fullscreen_mode">true</bool>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 1.100in -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">176.0dp</dimen>
-    <fraction name="minKeyboardHeight">45%p</fraction>
-    <!-- key_height + key_bottom_gap = popup_key_height -->
-    <dimen name="popup_key_height">44.8dp</dimen>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">176.0dp</dimen>
+    <fraction name="config_min_keyboard_height">45%p</fraction>
+    <!-- key_height + key_bottom_gap = config_more_keys_keyboard_key_height -->
+    <dimen name="config_more_keys_keyboard_key_height">44.8dp</dimen>
 
-    <fraction name="keyboard_top_padding_gb">1.818%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">0.0%p</fraction>
-    <fraction name="key_bottom_gap_gb">5.941%p</fraction>
-    <fraction name="key_horizontal_gap_gb">0.997%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">1.818%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">5.941%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">0.997%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">2.727%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">0.0%p</fraction>
-    <fraction name="key_bottom_gap_holo">5.368%p</fraction>
-    <fraction name="key_horizontal_gap_holo">1.020%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">2.727%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">5.368%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">1.020%p</fraction>
 
     <!-- left or right padding of label alignment -->
-    <dimen name="key_label_horizontal_padding">8dp</dimen>
+    <dimen name="config_key_label_horizontal_padding">8dp</dimen>
 
-    <fraction name="key_letter_ratio">65%</fraction>
-    <fraction name="key_large_letter_ratio">74%</fraction>
-    <fraction name="key_label_ratio">40%</fraction>
-    <fraction name="key_hint_letter_ratio">30%</fraction>
-    <fraction name="key_hint_label_ratio">52%</fraction>
-    <fraction name="key_uppercase_letter_ratio">40%</fraction>
-    <fraction name="key_preview_text_ratio">90%</fraction>
-    <fraction name="spacebar_text_ratio">40.000%</fraction>
-    <dimen name="key_preview_offset_gb">0.0dp</dimen>
+    <fraction name="config_key_letter_ratio">65%</fraction>
+    <fraction name="config_key_large_letter_ratio">74%</fraction>
+    <fraction name="config_key_label_ratio">40%</fraction>
+    <fraction name="config_key_hint_letter_ratio">30%</fraction>
+    <fraction name="config_key_hint_label_ratio">52%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">40%</fraction>
+    <fraction name="config_key_preview_text_ratio">90%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">40.000%</fraction>
+    <dimen name="config_key_preview_offset_gb">0.0dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">3.20%p</fraction>
-    <fraction name="key_letter_ratio_5row">78%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">48%</fraction>
+    <fraction name="config_key_vertical_gap_5row">3.20%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">78%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">48%</fraction>
 
-    <dimen name="key_preview_offset_holo">1.6dp</dimen>
-    <!-- popup_key_height x -0.5 -->
-    <dimen name="more_keys_keyboard_vertical_correction_holo">-22.4dp</dimen>
+    <dimen name="config_key_preview_offset_holo">1.6dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -0.5 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_holo">-22.4dp</dimen>
 
-    <dimen name="suggestions_strip_height">36dp</dimen>
-    <dimen name="more_suggestions_row_height">36dp</dimen>
-    <integer name="max_more_suggestions_row">2</integer>
-    <fraction name="min_more_suggestions_width">60%</fraction>
+    <dimen name="config_suggestions_strip_height">36dp</dimen>
+    <dimen name="config_more_suggestions_row_height">36dp</dimen>
+    <integer name="config_max_more_suggestions_row">2</integer>
+    <fraction name="config_min_more_suggestions_width">60%</fraction>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
-    <!-- popup_key_height x 1.2 -->
-    <dimen name="more_keys_keyboard_slide_allowance">53.76dp</dimen>
-    <!-- popup_key_height x -1.0 -->
-    <dimen name="more_keys_keyboard_vertical_correction_gb">-44.8dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x 1.2 -->
+    <dimen name="config_more_keys_keyboard_slide_allowance">53.76dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -1.0 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_gb">-44.8dp</dimen>
 
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">23dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">54dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">23dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">15dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">23dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">54dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">23dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">15dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">10%p</fraction>
-    <fraction name="emoji_keyboard_row_height">50%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">54%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">20</integer>
+    <fraction name="config_emoji_keyboard_key_width">10%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">50%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">54%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">20</integer>
 </resources>
diff --git a/java/res/values-sw540dp-land/config.xml b/java/res/values-sw540dp-land/config.xml
index 03c23cecc88a47a70863ced2ca3645e8f6e22370..2f578879a731b487b11934b1fcf5005e93364f45 100644
--- a/java/res/values-sw540dp-land/config.xml
+++ b/java/res/values-sw540dp-land/config.xml
@@ -22,55 +22,53 @@
 <resources>
     <bool name="config_use_fullscreen_mode">false</bool>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 45.0mm -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">283.5dp</dimen>
-    <fraction name="minKeyboardHeight">45%p</fraction>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">283.5dp</dimen>
+    <fraction name="config_min_keyboard_height">45%p</fraction>
 
-    <fraction name="keyboard_top_padding_gb">2.444%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">0.0%p</fraction>
-    <fraction name="key_bottom_gap_gb">5.200%p</fraction>
-    <fraction name="key_horizontal_gap_gb">1.447%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">2.444%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">5.200%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">1.447%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">2.727%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">0.0%p</fraction>
-    <fraction name="key_bottom_gap_holo">4.5%p</fraction>
-    <fraction name="key_horizontal_gap_holo">0.9%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">2.727%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">4.5%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">0.9%p</fraction>
 
-    <dimen name="popup_key_height">81.9dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen>
 
     <!-- left or right padding of label alignment -->
-    <dimen name="key_label_horizontal_padding">18dp</dimen>
+    <dimen name="config_key_label_horizontal_padding">18dp</dimen>
 
-    <fraction name="key_letter_ratio">50%</fraction>
-    <fraction name="key_large_letter_ratio">48%</fraction>
-    <fraction name="key_label_ratio">32%</fraction>
-    <fraction name="key_hint_letter_ratio">23%</fraction>
-    <fraction name="key_hint_label_ratio">34%</fraction>
-    <fraction name="key_uppercase_letter_ratio">29%</fraction>
-    <fraction name="spacebar_text_ratio">30.0%</fraction>
-    <dimen name="key_uppercase_letter_padding">4dp</dimen>
+    <fraction name="config_key_letter_ratio">50%</fraction>
+    <fraction name="config_key_large_letter_ratio">48%</fraction>
+    <fraction name="config_key_label_ratio">32%</fraction>
+    <fraction name="config_key_hint_letter_ratio">23%</fraction>
+    <fraction name="config_key_hint_label_ratio">34%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">29%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">30.0%</fraction>
+    <dimen name="config_key_shifted_letter_hint_padding">4dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">3.20%p</fraction>
-    <fraction name="key_letter_ratio_5row">62%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">36%</fraction>
+    <fraction name="config_key_vertical_gap_5row">3.20%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">62%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">36%</fraction>
 
-    <dimen name="suggestions_strip_padding">252.0dp</dimen>
-    <integer name="max_more_suggestions_row">5</integer>
-    <fraction name="min_more_suggestions_width">50%</fraction>
+    <dimen name="config_suggestions_strip_horizontal_padding">252.0dp</dimen>
+    <integer name="config_max_more_suggestions_row">5</integer>
+    <fraction name="config_min_more_suggestions_width">50%</fraction>
 
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">26dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">76dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">26dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">17dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">26dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">76dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">26dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">17dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">10%p</fraction>
-    <fraction name="emoji_keyboard_row_height">33%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">70%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">30</integer>
+    <fraction name="config_emoji_keyboard_key_width">10%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">70%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">30</integer>
 </resources>
diff --git a/java/res/values-sw540dp/config.xml b/java/res/values-sw540dp/config.xml
index f7322d27c3b45611c28401b311b34d0a7f1dac6b..b6d1104b503f01ae17f53a694b3a38eede4317a4 100644
--- a/java/res/values-sw540dp/config.xml
+++ b/java/res/values-sw540dp/config.xml
@@ -34,79 +34,77 @@
          false -->
     <bool name="config_show_more_keys_keyboard_at_touched_point">true</bool>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 48.0mm -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">302.4dp</dimen>
-    <fraction name="maxKeyboardHeight">46%p</fraction>
-    <fraction name="minKeyboardHeight">-35.0%p</fraction>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">302.4dp</dimen>
+    <fraction name="config_max_keyboard_height">46%p</fraction>
+    <fraction name="config_min_keyboard_height">-35.0%p</fraction>
 
-    <dimen name="popup_key_height">63.0dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_height">63.0dp</dimen>
 
-    <fraction name="keyboard_top_padding_gb">2.291%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">0.0%p</fraction>
-    <fraction name="key_bottom_gap_gb">4.625%p</fraction>
-    <fraction name="key_horizontal_gap_gb">2.113%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">2.291%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">4.625%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">2.113%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">2.335%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">4.0%p</fraction>
-    <fraction name="key_bottom_gap_holo">4.5%p</fraction>
-    <fraction name="key_horizontal_gap_holo">1.565%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">4.0%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">4.5%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">1.565%p</fraction>
 
-    <dimen name="more_keys_keyboard_key_horizontal_padding">6dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_horizontal_padding">6dp</dimen>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
-    <!-- popup_key_height x 1.2 -->
-    <dimen name="more_keys_keyboard_slide_allowance">98.3dp</dimen>
-    <!-- popup_key_height x -1.0 -->
-    <dimen name="more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x 1.2 -->
+    <dimen name="config_more_keys_keyboard_slide_allowance">98.3dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -1.0 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen>
 
     <!-- left or right padding of label alignment -->
-    <dimen name="key_label_horizontal_padding">6dp</dimen>
-    <dimen name="key_hint_letter_padding">3dp</dimen>
-    <dimen name="key_uppercase_letter_padding">3dp</dimen>
+    <dimen name="config_key_label_horizontal_padding">6dp</dimen>
+    <dimen name="config_key_hint_letter_padding">3dp</dimen>
+    <dimen name="config_key_shifted_letter_hint_padding">3dp</dimen>
 
-    <fraction name="key_letter_ratio">42%</fraction>
-    <fraction name="key_large_letter_ratio">45%</fraction>
-    <fraction name="key_label_ratio">25%</fraction>
-    <fraction name="key_large_label_ratio">32%</fraction>
-    <fraction name="key_hint_letter_ratio">23%</fraction>
-    <fraction name="key_hint_label_ratio">28%</fraction>
-    <fraction name="key_uppercase_letter_ratio">22%</fraction>
-    <fraction name="key_preview_text_ratio">50%</fraction>
-    <fraction name="spacebar_text_ratio">28.0%</fraction>
-    <dimen name="key_preview_height">94.5dp</dimen>
-    <dimen name="key_preview_offset_gb">16.0dp</dimen>
+    <fraction name="config_key_letter_ratio">42%</fraction>
+    <fraction name="config_key_large_letter_ratio">45%</fraction>
+    <fraction name="config_key_label_ratio">25%</fraction>
+    <fraction name="config_key_large_label_ratio">32%</fraction>
+    <fraction name="config_key_hint_letter_ratio">23%</fraction>
+    <fraction name="config_key_hint_label_ratio">28%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">22%</fraction>
+    <fraction name="config_key_preview_text_ratio">50%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">28.0%</fraction>
+    <dimen name="config_key_preview_height">94.5dp</dimen>
+    <dimen name="config_key_preview_offset_gb">16.0dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">3.20%p</fraction>
-    <fraction name="key_letter_ratio_5row">52%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">27%</fraction>
+    <fraction name="config_key_vertical_gap_5row">3.20%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">52%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">27%</fraction>
 
-    <dimen name="key_preview_offset_holo">8.0dp</dimen>
-    <!-- popup_key_height x -0.5 -->
-    <dimen name="more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
+    <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -0.5 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
 
-    <dimen name="suggestions_strip_height">44dp</dimen>
-    <dimen name="more_suggestions_row_height">44dp</dimen>
-    <integer name="max_more_suggestions_row">6</integer>
-    <fraction name="min_more_suggestions_width">90%</fraction>
-    <dimen name="suggestions_strip_padding">94.5dp</dimen>
-    <dimen name="suggestion_min_width">48.0dp</dimen>
-    <dimen name="suggestion_padding">12dp</dimen>
-    <dimen name="suggestion_text_size">22dp</dimen>
-    <dimen name="more_suggestions_hint_text_size">33dp</dimen>
+    <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_more_suggestions_row_height">44dp</dimen>
+    <integer name="config_max_more_suggestions_row">6</integer>
+    <fraction name="config_min_more_suggestions_width">90%</fraction>
+    <dimen name="config_suggestions_strip_horizontal_padding">94.5dp</dimen>
+    <dimen name="config_suggestion_min_width">48.0dp</dimen>
+    <dimen name="config_suggestion_text_horizontal_padding">12dp</dimen>
+    <dimen name="config_suggestion_text_size">22dp</dimen>
+    <dimen name="config_more_suggestions_hint_text_size">33dp</dimen>
 
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">28dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">87dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">28dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">19dp</dimen>
-    <dimen name="gesture_floating_preview_round_radius">3dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">28dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">87dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">28dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">19dp</dimen>
+    <dimen name="config_gesture_floating_preview_round_radius">3dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">12.5%p</fraction>
-    <fraction name="emoji_keyboard_row_height">33%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">60%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">24</integer>
+    <fraction name="config_emoji_keyboard_key_width">12.5%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">60%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">24</integer>
 </resources>
diff --git a/java/res/values-sw768dp-land/config.xml b/java/res/values-sw768dp-land/config.xml
index 3e6e77b421486fc82172d74bb1386262d7b100e0..716fcdd97074b24de056ef1f6621c81b87f1ad8f 100644
--- a/java/res/values-sw768dp-land/config.xml
+++ b/java/res/values-sw768dp-land/config.xml
@@ -22,56 +22,54 @@
 <resources>
     <bool name="config_use_fullscreen_mode">false</bool>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 58.0mm -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">365.4dp</dimen>
-    <fraction name="minKeyboardHeight">45%p</fraction>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">365.4dp</dimen>
+    <fraction name="config_min_keyboard_height">45%p</fraction>
 
-    <fraction name="keyboard_top_padding_gb">1.896%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">0.0%p</fraction>
-    <fraction name="key_bottom_gap_gb">3.896%p</fraction>
-    <fraction name="key_horizontal_gap_gb">1.195%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">1.896%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">3.896%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">1.195%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">1.896%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">0.0%p</fraction>
-    <fraction name="key_bottom_gap_holo">3.690%p</fraction>
-    <fraction name="key_horizontal_gap_holo">1.030%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">1.896%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">3.690%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">1.030%p</fraction>
 
-    <dimen name="popup_key_height">81.9dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_height">81.9dp</dimen>
 
     <!-- left or right padding of label alignment -->
-    <dimen name="key_label_horizontal_padding">18dp</dimen>
+    <dimen name="config_key_label_horizontal_padding">18dp</dimen>
 
-    <fraction name="key_letter_ratio">43%</fraction>
-    <fraction name="key_large_letter_ratio">42%</fraction>
-    <fraction name="key_label_ratio">28%</fraction>
-    <fraction name="key_hint_letter_ratio">23%</fraction>
-    <fraction name="key_hint_label_ratio">28%</fraction>
-    <fraction name="key_uppercase_letter_ratio">24%</fraction>
-    <fraction name="spacebar_text_ratio">24.00%</fraction>
-    <dimen name="key_preview_height">107.1dp</dimen>
+    <fraction name="config_key_letter_ratio">43%</fraction>
+    <fraction name="config_key_large_letter_ratio">42%</fraction>
+    <fraction name="config_key_label_ratio">28%</fraction>
+    <fraction name="config_key_hint_letter_ratio">23%</fraction>
+    <fraction name="config_key_hint_label_ratio">28%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">24%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">24.00%</fraction>
+    <dimen name="config_key_preview_height">107.1dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">2.65%p</fraction>
-    <fraction name="key_letter_ratio_5row">53%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">30%</fraction>
+    <fraction name="config_key_vertical_gap_5row">2.65%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">53%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">30%</fraction>
 
-    <dimen name="key_preview_offset_holo">8.0dp</dimen>
+    <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
 
-    <dimen name="suggestions_strip_padding">252.0dp</dimen>
-    <fraction name="min_more_suggestions_width">50%</fraction>
+    <dimen name="config_suggestions_strip_horizontal_padding">252.0dp</dimen>
+    <fraction name="config_min_more_suggestions_width">50%</fraction>
 
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">32dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">100dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">32dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">21dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">32dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">100dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">32dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">21dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">7.69%p</fraction>
-    <fraction name="emoji_keyboard_row_height">33%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">60%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">39</integer>
+    <fraction name="config_emoji_keyboard_key_width">7.69%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">60%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">39</integer>
 </resources>
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index f76e76f2e715555e86d2fb79b0dea17e26bb4f1c..112775c618f94f4e9ecd8b1e5db150df48bf404f 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -34,79 +34,77 @@
          false -->
     <bool name="config_show_more_keys_keyboard_at_touched_point">true</bool>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 48.0mm -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">302.4dp</dimen>
-    <fraction name="maxKeyboardHeight">46%p</fraction>
-    <fraction name="minKeyboardHeight">-35.0%p</fraction>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">302.4dp</dimen>
+    <fraction name="config_max_keyboard_height">46%p</fraction>
+    <fraction name="config_min_keyboard_height">-35.0%p</fraction>
 
-    <fraction name="keyboard_top_padding_gb">2.291%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">0.0%p</fraction>
-    <fraction name="key_bottom_gap_gb">4.687%p</fraction>
-    <fraction name="key_horizontal_gap_gb">1.272%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">2.291%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">4.687%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">1.272%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">2.335%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">0.0%p</fraction>
-    <fraction name="key_bottom_gap_holo">3.312%p</fraction>
-    <fraction name="key_horizontal_gap_holo">1.066%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">0.0%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">3.312%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">1.066%p</fraction>
 
-    <dimen name="popup_key_height">63.0dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_height">63.0dp</dimen>
 
-    <dimen name="more_keys_keyboard_key_horizontal_padding">12dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_horizontal_padding">12dp</dimen>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
-    <!-- popup_key_height x 1.2 -->
-    <dimen name="more_keys_keyboard_slide_allowance">98.3dp</dimen>
-    <!-- popup_key_height x -1.0 -->
-    <dimen name="more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x 1.2 -->
+    <dimen name="config_more_keys_keyboard_slide_allowance">98.3dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -1.0 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_gb">-81.9dp</dimen>
 
     <!-- left or right padding of label alignment -->
-    <dimen name="key_label_horizontal_padding">6dp</dimen>
-    <dimen name="key_hint_letter_padding">3dp</dimen>
-    <dimen name="key_uppercase_letter_padding">3dp</dimen>
+    <dimen name="config_key_label_horizontal_padding">6dp</dimen>
+    <dimen name="config_key_hint_letter_padding">3dp</dimen>
+    <dimen name="config_key_shifted_letter_hint_padding">3dp</dimen>
 
-    <fraction name="key_letter_ratio">40%</fraction>
-    <fraction name="key_large_letter_ratio">42%</fraction>
-    <fraction name="key_label_ratio">28%</fraction>
-    <fraction name="key_large_label_ratio">28%</fraction>
-    <fraction name="key_hint_letter_ratio">23%</fraction>
-    <fraction name="key_hint_label_ratio">28%</fraction>
-    <fraction name="key_uppercase_letter_ratio">26%</fraction>
-    <fraction name="key_preview_text_ratio">50%</fraction>
-    <fraction name="spacebar_text_ratio">29.03%</fraction>
-    <dimen name="key_preview_height">94.5dp</dimen>
-    <dimen name="key_preview_offset_gb">16.0dp</dimen>
+    <fraction name="config_key_letter_ratio">40%</fraction>
+    <fraction name="config_key_large_letter_ratio">42%</fraction>
+    <fraction name="config_key_label_ratio">28%</fraction>
+    <fraction name="config_key_large_label_ratio">28%</fraction>
+    <fraction name="config_key_hint_letter_ratio">23%</fraction>
+    <fraction name="config_key_hint_label_ratio">28%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">26%</fraction>
+    <fraction name="config_key_preview_text_ratio">50%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">29.03%</fraction>
+    <dimen name="config_key_preview_height">94.5dp</dimen>
+    <dimen name="config_key_preview_offset_gb">16.0dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">2.95%p</fraction>
-    <fraction name="key_letter_ratio_5row">51%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">33%</fraction>
+    <fraction name="config_key_vertical_gap_5row">2.95%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">51%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">33%</fraction>
 
-    <dimen name="key_preview_offset_holo">8.0dp</dimen>
-    <!-- popup_key_height x -0.5 -->
-    <dimen name="more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
+    <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -0.5 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_holo">-31.5dp</dimen>
 
-    <dimen name="suggestions_strip_height">44dp</dimen>
-    <dimen name="more_suggestions_row_height">44dp</dimen>
-    <integer name="max_more_suggestions_row">6</integer>
-    <fraction name="min_more_suggestions_width">90%</fraction>
-    <dimen name="suggestions_strip_padding">94.5dp</dimen>
-    <dimen name="suggestion_min_width">46dp</dimen>
-    <dimen name="suggestion_padding">8dp</dimen>
-    <dimen name="suggestion_text_size">22dp</dimen>
-    <dimen name="more_suggestions_hint_text_size">33dp</dimen>
+    <dimen name="config_suggestions_strip_height">44dp</dimen>
+    <dimen name="config_more_suggestions_row_height">44dp</dimen>
+    <integer name="config_max_more_suggestions_row">6</integer>
+    <fraction name="config_min_more_suggestions_width">90%</fraction>
+    <dimen name="config_suggestions_strip_horizontal_padding">94.5dp</dimen>
+    <dimen name="config_suggestion_min_width">46dp</dimen>
+    <dimen name="config_suggestion_text_horizontal_padding">8dp</dimen>
+    <dimen name="config_suggestion_text_size">22dp</dimen>
+    <dimen name="config_more_suggestions_hint_text_size">33dp</dimen>
 
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">26dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">86dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">26dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">17dp</dimen>
-    <dimen name="gesture_floating_preview_round_radius">3dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">26dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">86dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">26dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">17dp</dimen>
+    <dimen name="config_gesture_floating_preview_round_radius">3dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">10%p</fraction>
-    <fraction name="emoji_keyboard_row_height">33%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">68%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">30</integer>
+    <fraction name="config_emoji_keyboard_key_width">10%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">68%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">30</integer>
 </resources>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 4bc948109c6438eed66eef17bccaeb8a62b05b60..8191ffbcbd2fe6ccbb16570feb7af3c0499d8243 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -72,9 +72,9 @@
         <attr name="autoCorrectionSpacebarLedEnabled" format="boolean" />
         <attr name="autoCorrectionSpacebarLedIcon" format="reference" />
         <!-- Size of the text for spacebar language label, in the proportion of key height. -->
-        <attr name="spacebarTextRatio" format="fraction" />
-        <attr name="spacebarTextColor" format="color" />
-        <attr name="spacebarTextShadowColor" format="color" />
+        <attr name="languageOnSpacebarTextRatio" format="fraction" />
+        <attr name="languageOnSpacebarTextColor" format="color" />
+        <attr name="languageOnSpacebarTextShadowColor" format="color" />
         <!-- Fadeout animator for spacebar language label. -->
         <attr name="languageOnSpacebarFinalAlpha" format="integer" />
         <attr name="languageOnSpacebarFadeoutAnimator" format="reference" />
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 122bc4ec1a8980ecb5aa5f6fd849ea79365b9000..87de57ad77c8aebcb2d3804406da3cc758ca5cd3 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -100,114 +100,112 @@
     <!-- Suppress showing key preview duration after batch input in millisecond -->
     <integer name="config_suppress_key_preview_after_batch_input_duration">1000</integer>
 
-    <!-- TODO: Add config_ prefix to the following resources that have been merged from dimens.xml -->
-
     <!-- Preferable keyboard height in absolute scale: 1.285in -->
-    <!-- This keyboardHeight value should match with keyboard-heights.xml -->
-    <dimen name="keyboardHeight">205.6dp</dimen>
-    <fraction name="maxKeyboardHeight">46%p</fraction>
-    <fraction name="minKeyboardHeight">-61.8%p</fraction>
+    <!-- This config_default_keyboard_height value should match with keyboard-heights.xml -->
+    <dimen name="config_default_keyboard_height">205.6dp</dimen>
+    <fraction name="config_max_keyboard_height">46%p</fraction>
+    <fraction name="config_min_keyboard_height">-61.8%p</fraction>
 
-    <dimen name="popup_key_height">52.8dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_height">52.8dp</dimen>
 
-    <dimen name="more_keys_keyboard_key_horizontal_padding">8dp</dimen>
+    <dimen name="config_more_keys_keyboard_key_horizontal_padding">8dp</dimen>
 
-    <fraction name="keyboard_left_padding">0%p</fraction>
-    <fraction name="keyboard_right_padding">0%p</fraction>
+    <fraction name="config_keyboard_left_padding">0%p</fraction>
+    <fraction name="config_keyboard_right_padding">0%p</fraction>
 
-    <fraction name="keyboard_top_padding_gb">1.556%p</fraction>
-    <fraction name="keyboard_bottom_padding_gb">4.669%p</fraction>
-    <fraction name="key_bottom_gap_gb">6.495%p</fraction>
-    <fraction name="key_horizontal_gap_gb">1.971%p</fraction>
+    <fraction name="config_keyboard_top_padding_gb">1.556%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_gb">4.669%p</fraction>
+    <fraction name="config_key_vertical_gap_gb">6.495%p</fraction>
+    <fraction name="config_key_horizontal_gap_gb">1.971%p</fraction>
 
-    <fraction name="keyboard_top_padding_holo">2.335%p</fraction>
-    <fraction name="keyboard_bottom_padding_holo">4.669%p</fraction>
-    <fraction name="key_bottom_gap_holo">6.127%p</fraction>
-    <fraction name="key_horizontal_gap_holo">1.739%p</fraction>
+    <fraction name="config_keyboard_top_padding_holo">2.335%p</fraction>
+    <fraction name="config_keyboard_bottom_padding_holo">4.669%p</fraction>
+    <fraction name="config_key_vertical_gap_holo">6.127%p</fraction>
+    <fraction name="config_key_horizontal_gap_holo">1.739%p</fraction>
 
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
-    <!-- popup_key_height x 1.2 -->
-    <dimen name="more_keys_keyboard_slide_allowance">63.36dp</dimen>
-    <!-- popup_key_height x -1.0 -->
-    <dimen name="more_keys_keyboard_vertical_correction_gb">-52.8dp</dimen>
-    <dimen name="keyboard_vertical_correction">0.0dp</dimen>
-
-    <fraction name="key_letter_ratio">55%</fraction>
-    <fraction name="key_large_letter_ratio">65%</fraction>
-    <fraction name="key_label_ratio">34%</fraction>
-    <fraction name="key_large_label_ratio">40%</fraction>
-    <fraction name="key_hint_letter_ratio">25%</fraction>
-    <fraction name="key_hint_label_ratio">44%</fraction>
-    <fraction name="key_uppercase_letter_ratio">35%</fraction>
-    <fraction name="key_preview_text_ratio">82%</fraction>
-    <fraction name="spacebar_text_ratio">33.735%</fraction>
-    <dimen name="key_preview_height">80dp</dimen>
-    <dimen name="key_preview_offset_gb">-8.0dp</dimen>
-
-    <dimen name="key_label_horizontal_padding">4dp</dimen>
-    <dimen name="key_hint_letter_padding">1dp</dimen>
-    <dimen name="key_popup_hint_letter_padding">2dp</dimen>
-    <dimen name="key_uppercase_letter_padding">2dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x 1.2 -->
+    <dimen name="config_more_keys_keyboard_slide_allowance">63.36dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -1.0 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_gb">-52.8dp</dimen>
+    <dimen name="config_keyboard_vertical_correction">0.0dp</dimen>
+
+    <fraction name="config_key_letter_ratio">55%</fraction>
+    <fraction name="config_key_large_letter_ratio">65%</fraction>
+    <fraction name="config_key_label_ratio">34%</fraction>
+    <fraction name="config_key_large_label_ratio">40%</fraction>
+    <fraction name="config_key_hint_letter_ratio">25%</fraction>
+    <fraction name="config_key_hint_label_ratio">44%</fraction>
+    <fraction name="config_key_uppercase_letter_ratio">35%</fraction>
+    <fraction name="config_key_preview_text_ratio">82%</fraction>
+    <fraction name="config_language_on_spacebar_text_ratio">33.735%</fraction>
+    <dimen name="config_key_preview_height">80dp</dimen>
+    <dimen name="config_key_preview_offset_gb">-8.0dp</dimen>
+
+    <dimen name="config_key_label_horizontal_padding">4dp</dimen>
+    <dimen name="config_key_hint_letter_padding">1dp</dimen>
+    <dimen name="config_key_popup_hint_letter_padding">2dp</dimen>
+    <dimen name="config_key_shifted_letter_hint_padding">2dp</dimen>
 
     <!-- For 5-row keyboard -->
-    <fraction name="key_bottom_gap_5row">3.20%p</fraction>
-    <fraction name="key_letter_ratio_5row">64%</fraction>
-    <fraction name="key_uppercase_letter_ratio_5row">41%</fraction>
-
-    <dimen name="key_preview_offset_holo">8.0dp</dimen>
-    <!-- popup_key_height x -0.5 -->
-    <dimen name="more_keys_keyboard_vertical_correction_holo">-26.4dp</dimen>
-
-    <dimen name="suggestions_strip_height">40dp</dimen>
-    <dimen name="more_suggestions_key_horizontal_padding">12dp</dimen>
-    <dimen name="more_suggestions_row_height">40dp</dimen>
-    <dimen name="more_suggestions_bottom_gap">6dp</dimen>
-    <dimen name="more_suggestions_modal_tolerance">32.0dp</dimen>
-    <integer name="max_more_suggestions_row">6</integer>
-    <fraction name="min_more_suggestions_width">90%</fraction>
-    <fraction name="more_suggestions_info_ratio">18%</fraction>
-    <dimen name="suggestions_strip_padding">0dp</dimen>
-    <dimen name="suggestion_min_width">44dp</dimen>
-    <dimen name="suggestion_padding">6dp</dimen>
-    <dimen name="suggestion_text_size">18dp</dimen>
-    <dimen name="more_suggestions_hint_text_size">27dp</dimen>
-    <integer name="suggestions_count_in_strip">3</integer>
-    <fraction name="center_suggestion_percentile">36%</fraction>
+    <fraction name="config_key_vertical_gap_5row">3.20%p</fraction>
+    <fraction name="config_key_letter_ratio_5row">64%</fraction>
+    <fraction name="config_key_shifted_letter_hint_ratio_5row">41%</fraction>
+
+    <dimen name="config_key_preview_offset_holo">8.0dp</dimen>
+    <!-- config_more_keys_keyboard_key_height x -0.5 -->
+    <dimen name="config_more_keys_keyboard_vertical_correction_holo">-26.4dp</dimen>
+
+    <dimen name="config_suggestions_strip_height">40dp</dimen>
+    <dimen name="config_more_suggestions_key_horizontal_padding">12dp</dimen>
+    <dimen name="config_more_suggestions_row_height">40dp</dimen>
+    <dimen name="config_more_suggestions_bottom_gap">6dp</dimen>
+    <dimen name="config_more_suggestions_modal_tolerance">32.0dp</dimen>
+    <integer name="config_max_more_suggestions_row">6</integer>
+    <fraction name="config_min_more_suggestions_width">90%</fraction>
+    <fraction name="config_more_suggestions_info_ratio">18%</fraction>
+    <dimen name="config_suggestions_strip_horizontal_padding">0dp</dimen>
+    <dimen name="config_suggestion_min_width">44dp</dimen>
+    <dimen name="config_suggestion_text_horizontal_padding">6dp</dimen>
+    <dimen name="config_suggestion_text_size">18dp</dimen>
+    <dimen name="config_more_suggestions_hint_text_size">27dp</dimen>
+    <integer name="config_suggestions_count_in_strip">3</integer>
+    <fraction name="config_center_suggestion_percentile">36%</fraction>
 
     <!-- Gesture trail parameters -->
     <!-- Minimum distance between gesture trail sampling points. -->
-    <dimen name="gesture_trail_min_sampling_distance">9.6dp</dimen>
+    <dimen name="config_gesture_trail_min_sampling_distance">9.6dp</dimen>
     <!-- Maximum angular threshold between gesture trails interpolation segments in degree. -->
-    <integer name="gesture_trail_max_interpolation_angular_threshold">15</integer>
+    <integer name="config_gesture_trail_max_interpolation_angular_threshold">15</integer>
     <!-- Maximum distance threshold between gesture trails interpolation segments. -->
-    <dimen name="gesture_trail_max_interpolation_distance_threshold">16.0dp</dimen>
+    <dimen name="config_gesture_trail_max_interpolation_distance_threshold">16.0dp</dimen>
     <!-- Maximum number of gesture trail interpolation segments. -->
-    <integer name="gesture_trail_max_interpolation_segments">6</integer>
-    <dimen name="gesture_trail_start_width">10.0dp</dimen>
-    <dimen name="gesture_trail_end_width">2.5dp</dimen>
+    <integer name="config_gesture_trail_max_interpolation_segments">6</integer>
+    <dimen name="config_gesture_trail_start_width">10.0dp</dimen>
+    <dimen name="config_gesture_trail_end_width">2.5dp</dimen>
     <!-- Percentages of gesture preview taril body and shadow, in proportion to the trail width.
          A negative value of the shadow ratio disables drawing shadow. -->
     <!-- TODO: May use the shadow to alleviate rugged trail drawing. -->
-    <integer name="gesture_trail_body_ratio">100</integer>
-    <integer name="gesture_trail_shadow_ratio">-1</integer>
+    <integer name="config_gesture_trail_body_ratio">100</integer>
+    <integer name="config_gesture_trail_shadow_ratio">-1</integer>
     <!-- Gesture floating preview text parameters -->
-    <dimen name="gesture_floating_preview_text_size">24dp</dimen>
-    <dimen name="gesture_floating_preview_text_offset">73dp</dimen>
-    <dimen name="gesture_floating_preview_horizontal_padding">24dp</dimen>
-    <dimen name="gesture_floating_preview_vertical_padding">16dp</dimen>
-    <dimen name="gesture_floating_preview_round_radius">2dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_size">24dp</dimen>
+    <dimen name="config_gesture_floating_preview_text_offset">73dp</dimen>
+    <dimen name="config_gesture_floating_preview_horizontal_padding">24dp</dimen>
+    <dimen name="config_gesture_floating_preview_vertical_padding">16dp</dimen>
+    <dimen name="config_gesture_floating_preview_round_radius">2dp</dimen>
 
     <!-- Emoji keyboard -->
-    <fraction name="emoji_keyboard_key_width">14.2857%p</fraction>
-    <fraction name="emoji_keyboard_row_height">33%p</fraction>
-    <fraction name="emoji_keyboard_key_letter_size">68%p</fraction>
-    <integer name="emoji_keyboard_max_key_count">21</integer>
-    <dimen name="emoji_category_page_id_height">3dp</dimen>
+    <fraction name="config_emoji_keyboard_key_width">14.2857%p</fraction>
+    <fraction name="config_emoji_keyboard_row_height">33%p</fraction>
+    <fraction name="config_emoji_keyboard_key_letter_size">68%p</fraction>
+    <integer name="config_emoji_keyboard_max_page_key_count">21</integer>
+    <dimen name="config_emoji_category_page_id_height">3dp</dimen>
 
     <!-- Inset used in Accessibility mode to avoid accidental key presses when a finger slides off the screen. -->
-    <dimen name="accessibility_edge_slop">8dp</dimen>
+    <dimen name="config_accessibility_edge_slop">8dp</dimen>
 
-    <integer name="user_dictionary_max_word_length" translatable="false">48</integer>
+    <integer name="config_user_dictionary_max_word_length" translatable="false">48</integer>
 
-    <dimen name="language_on_spacebar_horizontal_margin">1dp</dimen>
+    <dimen name="config_language_on_spacebar_horizontal_margin">1dp</dimen>
 </resources>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index 56fac28cf830b6a6e4d5b29fc66f5d342d2c7711..be15d52b365b80c819055f90bb5129b268712300 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -25,43 +25,43 @@
         <item name="touchPositionCorrectionData">@array/touch_position_correction_data_default</item>
         <item name="rowHeight">25%p</item>
         <item name="moreKeysTemplate">@xml/kbd_more_keys_keyboard_template</item>
-        <item name="keyboardLeftPadding">@fraction/keyboard_left_padding</item>
-        <item name="keyboardRightPadding">@fraction/keyboard_right_padding</item>
+        <item name="keyboardLeftPadding">@fraction/config_keyboard_left_padding</item>
+        <item name="keyboardRightPadding">@fraction/config_keyboard_right_padding</item>
         <item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
     </style>
     <style name="KeyboardView">
         <item name="keyBackground">@drawable/btn_keyboard_key_klp</item>
-        <item name="keyLetterSize">@fraction/key_letter_ratio</item>
-        <item name="keyLargeLetterRatio">@fraction/key_large_letter_ratio</item>
-        <item name="keyLabelSize">@fraction/key_label_ratio</item>
-        <item name="keyLargeLabelRatio">@fraction/key_large_label_ratio</item>
-        <item name="keyHintLetterRatio">@fraction/key_hint_letter_ratio</item>
-        <item name="keyHintLabelRatio">@fraction/key_hint_label_ratio</item>
-        <item name="keyShiftedLetterHintRatio">@fraction/key_uppercase_letter_ratio</item>
+        <item name="keyLetterSize">@fraction/config_key_letter_ratio</item>
+        <item name="keyLargeLetterRatio">@fraction/config_key_large_letter_ratio</item>
+        <item name="keyLabelSize">@fraction/config_key_label_ratio</item>
+        <item name="keyLargeLabelRatio">@fraction/config_key_large_label_ratio</item>
+        <item name="keyHintLetterRatio">@fraction/config_key_hint_letter_ratio</item>
+        <item name="keyHintLabelRatio">@fraction/config_key_hint_label_ratio</item>
+        <item name="keyShiftedLetterHintRatio">@fraction/config_key_uppercase_letter_ratio</item>
         <item name="keyTypeface">normal</item>
-        <item name="keyLabelHorizontalPadding">@dimen/key_label_horizontal_padding</item>
-        <item name="keyHintLetterPadding">@dimen/key_hint_letter_padding</item>
-        <item name="keyPopupHintLetterPadding">@dimen/key_popup_hint_letter_padding</item>
-        <item name="keyShiftedLetterHintPadding">@dimen/key_uppercase_letter_padding</item>
-        <item name="keyPreviewTextRatio">@fraction/key_preview_text_ratio</item>
-        <item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
+        <item name="keyLabelHorizontalPadding">@dimen/config_key_label_horizontal_padding</item>
+        <item name="keyHintLetterPadding">@dimen/config_key_hint_letter_padding</item>
+        <item name="keyPopupHintLetterPadding">@dimen/config_key_popup_hint_letter_padding</item>
+        <item name="keyShiftedLetterHintPadding">@dimen/config_key_shifted_letter_hint_padding</item>
+        <item name="keyPreviewTextRatio">@fraction/config_key_preview_text_ratio</item>
+        <item name="verticalCorrection">@dimen/config_keyboard_vertical_correction</item>
         <item name="backgroundDimAlpha">128</item>
-        <item name="gestureFloatingPreviewTextSize">@dimen/gesture_floating_preview_text_size</item>
-        <item name="gestureFloatingPreviewTextOffset">@dimen/gesture_floating_preview_text_offset</item>
-        <item name="gestureFloatingPreviewHorizontalPadding">@dimen/gesture_floating_preview_horizontal_padding</item>
-        <item name="gestureFloatingPreviewVerticalPadding">@dimen/gesture_floating_preview_vertical_padding</item>
-        <item name="gestureFloatingPreviewRoundRadius">@dimen/gesture_floating_preview_round_radius</item>
-        <item name="gestureTrailMinSamplingDistance">@dimen/gesture_trail_min_sampling_distance</item>
-        <item name="gestureTrailMaxInterpolationAngularThreshold">@integer/gesture_trail_max_interpolation_angular_threshold</item>
-        <item name="gestureTrailMaxInterpolationDistanceThreshold">@dimen/gesture_trail_max_interpolation_distance_threshold</item>
-        <item name="gestureTrailMaxInterpolationSegments">@integer/gesture_trail_max_interpolation_segments</item>
+        <item name="gestureFloatingPreviewTextSize">@dimen/config_gesture_floating_preview_text_size</item>
+        <item name="gestureFloatingPreviewTextOffset">@dimen/config_gesture_floating_preview_text_offset</item>
+        <item name="gestureFloatingPreviewHorizontalPadding">@dimen/config_gesture_floating_preview_horizontal_padding</item>
+        <item name="gestureFloatingPreviewVerticalPadding">@dimen/config_gesture_floating_preview_vertical_padding</item>
+        <item name="gestureFloatingPreviewRoundRadius">@dimen/config_gesture_floating_preview_round_radius</item>
+        <item name="gestureTrailMinSamplingDistance">@dimen/config_gesture_trail_min_sampling_distance</item>
+        <item name="gestureTrailMaxInterpolationAngularThreshold">@integer/config_gesture_trail_max_interpolation_angular_threshold</item>
+        <item name="gestureTrailMaxInterpolationDistanceThreshold">@dimen/config_gesture_trail_max_interpolation_distance_threshold</item>
+        <item name="gestureTrailMaxInterpolationSegments">@integer/config_gesture_trail_max_interpolation_segments</item>
         <item name="gestureTrailFadeoutStartDelay">@integer/config_gesture_trail_fadeout_start_delay</item>
         <item name="gestureTrailFadeoutDuration">@integer/config_gesture_trail_fadeout_duration</item>
         <item name="gestureTrailUpdateInterval">@integer/config_gesture_trail_update_interval</item>
-        <item name="gestureTrailStartWidth">@dimen/gesture_trail_start_width</item>
-        <item name="gestureTrailEndWidth">@dimen/gesture_trail_end_width</item>
-        <item name="gestureTrailBodyRatio">@integer/gesture_trail_body_ratio</item>
-        <item name="gestureTrailShadowRatio">@integer/gesture_trail_shadow_ratio</item>
+        <item name="gestureTrailStartWidth">@dimen/config_gesture_trail_start_width</item>
+        <item name="gestureTrailEndWidth">@dimen/config_gesture_trail_end_width</item>
+        <item name="gestureTrailBodyRatio">@integer/config_gesture_trail_body_ratio</item>
+        <item name="gestureTrailShadowRatio">@integer/config_gesture_trail_shadow_ratio</item>
         <!-- Common attributes of MainKeyboardView -->
         <item name="keyHysteresisDistance">@dimen/config_key_hysteresis_distance</item>
         <item name="keyHysteresisDistanceForSlidingModifier">@dimen/config_key_hysteresis_distance_for_sliding_modifier</item>
@@ -76,13 +76,13 @@
         <item name="longPressShiftLockTimeout">@integer/config_longpress_shift_lock_timeout</item>
         <item name="ignoreAltCodeKeyTimeout">@integer/config_ignore_alt_code_key_timeout</item>
         <item name="keyPreviewLayout">@layout/key_preview</item>
-        <item name="keyPreviewHeight">@dimen/key_preview_height</item>
+        <item name="keyPreviewHeight">@dimen/config_key_preview_height</item>
         <item name="keyPreviewZoomInDuration">@integer/config_key_preview_zoom_in_duration</item>
         <item name="keyPreviewZoomOutDuration">@integer/config_key_preview_zoom_out_duration</item>
         <item name="keyPreviewLingerTimeout">@integer/config_key_preview_linger_timeout</item>
         <item name="moreKeysKeyboardLayout">@layout/more_keys_keyboard</item>
         <item name="showMoreKeysKeyboardAtTouchedPoint">@bool/config_show_more_keys_keyboard_at_touched_point</item>
-        <item name="spacebarTextRatio">@fraction/spacebar_text_ratio</item>
+        <item name="languageOnSpacebarTextRatio">@fraction/config_language_on_spacebar_text_ratio</item>
         <item name="languageOnSpacebarFinalAlpha">@integer/config_language_on_spacebar_final_alpha</item>
         <item name="languageOnSpacebarFadeoutAnimator">@anim/language_on_spacebar_fadeout</item>
         <!-- Remove animations for now because it could drain a non-negligible amount of battery while typing.
@@ -122,10 +122,10 @@
         parent="MainKeyboardView" />
     <style name="MoreKeysKeyboardContainer" />
     <style name="SuggestionStripView">
-        <item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
-        <item name="centerSuggestionPercentile">@fraction/center_suggestion_percentile</item>
-        <item name="maxMoreSuggestionsRow">@integer/max_more_suggestions_row</item>
-        <item name="minMoreSuggestionsWidth">@fraction/min_more_suggestions_width</item>
+        <item name="suggestionsCountInStrip">@integer/config_suggestions_count_in_strip</item>
+        <item name="centerSuggestionPercentile">@fraction/config_center_suggestion_percentile</item>
+        <item name="maxMoreSuggestionsRow">@integer/config_max_more_suggestions_row</item>
+        <item name="minMoreSuggestionsWidth">@fraction/config_min_more_suggestions_width</item>
     </style>
     <style name="SuggestionWord" />
     <style name="MoreKeysKeyboardAnimation">
diff --git a/java/res/values/themes-gb.xml b/java/res/values/themes-gb.xml
index f417d84ca72d9f70b9efb64371ca9cbe1baaab49..78d47f9eea856f9841aae75194d419c68b4eea99 100644
--- a/java/res/values/themes-gb.xml
+++ b/java/res/values/themes-gb.xml
@@ -58,10 +58,10 @@
         <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
         <item name="themeId">1</item>
         <item name="touchPositionCorrectionData">@array/touch_position_correction_data_gb</item>
-        <item name="keyboardTopPadding">@fraction/keyboard_top_padding_gb</item>
-        <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_gb</item>
-        <item name="horizontalGap">@fraction/key_horizontal_gap_gb</item>
-        <item name="verticalGap">@fraction/key_bottom_gap_gb</item>
+        <item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_gb</item>
+        <item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_gb</item>
+        <item name="horizontalGap">@fraction/config_key_horizontal_gap_gb</item>
+        <item name="verticalGap">@fraction/config_key_vertical_gap_gb</item>
     </style>
     <style
         name="KeyboardView.GB"
@@ -84,15 +84,15 @@
         name="MainKeyboardView.GB"
         parent="KeyboardView.GB"
     >
-        <item name="keyPreviewOffset">@dimen/key_preview_offset_gb</item>
+        <item name="keyPreviewOffset">@dimen/config_key_preview_offset_gb</item>
         <item name="gestureFloatingPreviewTextColor">@color/highlight_color_gb</item>
         <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_gb</item>
         <item name="gestureTrailColor">@color/highlight_color_gb</item>
         <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_gb</item>
         <item name="autoCorrectionSpacebarLedEnabled">true</item>
         <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_gb</item>
-        <item name="spacebarTextColor">@color/spacebar_text_color_gb</item>
-        <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_gb</item>
+        <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_gb</item>
+        <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_gb</item>
     </style>
     <style
         name="KeyPreviewTextView.GB"
@@ -125,7 +125,7 @@
         <item name="android:background">@drawable/keyboard_popup_panel_background_gb</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_gb</item>
         <item name="keyTypeface">normal</item>
-        <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_gb</item>
+        <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_gb</item>
     </style>
     <style
         name="SuggestionStripView.GB"
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index b4f5af4f1821445c5f1f2059ccd8120ad18a022c..db8dccb4d4bfb8af7d14fc6770a1be1ce8384b7f 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -36,10 +36,10 @@
     >
         <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
         <item name="themeId">2</item>
-        <item name="keyboardTopPadding">@fraction/keyboard_top_padding_holo</item>
-        <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_holo</item>
-        <item name="horizontalGap">@fraction/key_horizontal_gap_holo</item>
-        <item name="verticalGap">@fraction/key_bottom_gap_holo</item>
+        <item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_holo</item>
+        <item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_holo</item>
+        <item name="horizontalGap">@fraction/config_key_horizontal_gap_holo</item>
+        <item name="verticalGap">@fraction/config_key_vertical_gap_holo</item>
         <item name="touchPositionCorrectionData">@array/touch_position_correction_data_holo</item>
     </style>
     <style
@@ -63,15 +63,15 @@
         name="MainKeyboardView.ICS"
         parent="KeyboardView.ICS"
     >
-        <item name="keyPreviewOffset">@dimen/key_preview_offset_holo</item>
+        <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
         <item name="gestureFloatingPreviewTextColor">@color/highlight_color_ics</item>
         <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_holo</item>
         <item name="gestureTrailColor">@color/highlight_color_ics</item>
         <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_ics</item>
         <item name="autoCorrectionSpacebarLedEnabled">false</item>
         <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_holo</item>
-        <item name="spacebarTextColor">@color/spacebar_text_color_holo</item>
-        <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
+        <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_holo</item>
+        <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
     </style>
     <style
         name="KeyPreviewTextView.ICS"
@@ -104,7 +104,7 @@
         <item name="android:background">@drawable/keyboard_popup_panel_background_ics</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_ics</item>
         <item name="keyTypeface">normal</item>
-        <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_holo</item>
+        <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
     <style
         name="SuggestionStripView.ICS"
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index ef88d88509ae06d479c4d7301c4971fb75eccf3e..dd1f630b3d79c9fb0ea82d79f2bbb76b639aca26 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -36,10 +36,10 @@
     >
         <!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
         <item name="themeId">0</item>
-        <item name="keyboardTopPadding">@fraction/keyboard_top_padding_holo</item>
-        <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_holo</item>
-        <item name="horizontalGap">@fraction/key_horizontal_gap_holo</item>
-        <item name="verticalGap">@fraction/key_bottom_gap_holo</item>
+        <item name="keyboardTopPadding">@fraction/config_keyboard_top_padding_holo</item>
+        <item name="keyboardBottomPadding">@fraction/config_keyboard_bottom_padding_holo</item>
+        <item name="horizontalGap">@fraction/config_key_horizontal_gap_holo</item>
+        <item name="verticalGap">@fraction/config_key_vertical_gap_holo</item>
         <item name="touchPositionCorrectionData">@array/touch_position_correction_data_holo</item>
     </style>
     <style
@@ -63,15 +63,15 @@
         name="MainKeyboardView.KLP"
         parent="KeyboardView.KLP"
     >
-        <item name="keyPreviewOffset">@dimen/key_preview_offset_holo</item>
+        <item name="keyPreviewOffset">@dimen/config_key_preview_offset_holo</item>
         <item name="gestureFloatingPreviewTextColor">@color/highlight_color_klp</item>
         <item name="gestureFloatingPreviewColor">@color/gesture_floating_preview_color_holo</item>
         <item name="gestureTrailColor">@color/highlight_color_klp</item>
         <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_klp</item>
         <item name="autoCorrectionSpacebarLedEnabled">false</item>
         <item name="autoCorrectionSpacebarLedIcon">@drawable/sym_keyboard_space_led_holo</item>
-        <item name="spacebarTextColor">@color/spacebar_text_color_holo</item>
-        <item name="spacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
+        <item name="languageOnSpacebarTextColor">@color/spacebar_text_color_holo</item>
+        <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
     </style>
     <style
         name="KeyPreviewTextView.KLP"
@@ -104,7 +104,7 @@
         <item name="android:background">@drawable/keyboard_popup_panel_background_klp</item>
         <item name="keyBackground">@drawable/btn_keyboard_key_popup_klp</item>
         <item name="keyTypeface">normal</item>
-        <item name="verticalCorrection">@dimen/more_keys_keyboard_vertical_correction_holo</item>
+        <item name="verticalCorrection">@dimen/config_more_keys_keyboard_vertical_correction_holo</item>
     </style>
     <style
         name="SuggestionStripView.KLP"
diff --git a/java/res/xml-sw600dp-land/kbd_more_keys_keyboard_template.xml b/java/res/xml-sw600dp-land/kbd_more_keys_keyboard_template.xml
index 4d8b446a2d52be7f132003b06cc6a55878e6d703..c7d446014d4262c2bf7d6b6ee3f848d22c805952 100644
--- a/java/res/xml-sw600dp-land/kbd_more_keys_keyboard_template.xml
+++ b/java/res/xml-sw600dp-land/kbd_more_keys_keyboard_template.xml
@@ -20,7 +20,7 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="5%p"
-    latin:rowHeight="@dimen/popup_key_height"
+    latin:rowHeight="@dimen/config_more_keys_keyboard_key_height"
     style="?attr/moreKeysKeyboardStyle"
     >
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_more_keys_keyboard_template.xml b/java/res/xml-sw600dp/kbd_more_keys_keyboard_template.xml
index d90a5884e729767cbbf4d07f5ecf9f4591dcedfd..fbe8cfcc0ba8704b49002dd300e7acd22da10cea 100644
--- a/java/res/xml-sw600dp/kbd_more_keys_keyboard_template.xml
+++ b/java/res/xml-sw600dp/kbd_more_keys_keyboard_template.xml
@@ -20,7 +20,7 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="8%p"
-    latin:rowHeight="@dimen/popup_key_height"
+    latin:rowHeight="@dimen/config_more_keys_keyboard_key_height"
     style="?attr/moreKeysKeyboardStyle"
     >
 </Keyboard>
diff --git a/java/res/xml/kbd_armenian_phonetic.xml b/java/res/xml/kbd_armenian_phonetic.xml
index 1eb3c7e7d5370209828486db9c12f810d3a8edb6..da12870edd780d311e8b61742efddd764d0fb0de 100644
--- a/java/res/xml/kbd_armenian_phonetic.xml
+++ b/java/res/xml/kbd_armenian_phonetic.xml
@@ -21,9 +21,9 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/key_bottom_gap_5row"
-    latin:keyLetterSize="@fraction/key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/key_uppercase_letter_ratio_5row"
+    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
+    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
+    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
     latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
 >
     <include
diff --git a/java/res/xml/kbd_emoji_category1.xml b/java/res/xml/kbd_emoji_category1.xml
index c11a8301747ce0264651fe04c11fc641a0aef300..5145ea9d3fe077f07ae03fdf3d46c9764533e87a 100644
--- a/java/res/xml/kbd_emoji_category1.xml
+++ b/java/res/xml/kbd_emoji_category1.xml
@@ -20,9 +20,9 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_faces"
diff --git a/java/res/xml/kbd_emoji_category2.xml b/java/res/xml/kbd_emoji_category2.xml
index d3e5890ea2ab89a911012fd2a38d12bf968ed03b..ac8784f4b4c6fc72fc9b8b3793cc72a50b536081 100644
--- a/java/res/xml/kbd_emoji_category2.xml
+++ b/java/res/xml/kbd_emoji_category2.xml
@@ -20,9 +20,9 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_objects"
diff --git a/java/res/xml/kbd_emoji_category3.xml b/java/res/xml/kbd_emoji_category3.xml
index 0efafa8145fbe2338a43ec20c3e1109b8da27668..88c4db92b69249be0fa806143e1b2b859842b8b3 100644
--- a/java/res/xml/kbd_emoji_category3.xml
+++ b/java/res/xml/kbd_emoji_category3.xml
@@ -20,9 +20,9 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_nature"
diff --git a/java/res/xml/kbd_emoji_category4.xml b/java/res/xml/kbd_emoji_category4.xml
index e5291207fb46cdaf931137cc8cf70131181f1f84..262384d80bdd02bc450bea9efcec4e33291997d8 100644
--- a/java/res/xml/kbd_emoji_category4.xml
+++ b/java/res/xml/kbd_emoji_category4.xml
@@ -20,9 +20,9 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_places"
diff --git a/java/res/xml/kbd_emoji_category5.xml b/java/res/xml/kbd_emoji_category5.xml
index 1836879d662439c4455d96d695f7fb8c12e0e334..bf823f9784d041d38e2c83c201cd89aaae6c113e 100644
--- a/java/res/xml/kbd_emoji_category5.xml
+++ b/java/res/xml/kbd_emoji_category5.xml
@@ -20,9 +20,9 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_symbols"
diff --git a/java/res/xml/kbd_emoji_category6.xml b/java/res/xml/kbd_emoji_category6.xml
index b47ebfec042cb36814e10a5f45e7a0e2143358e6..edb82fc6461b91a5cd18779ded58b86232100d93 100644
--- a/java/res/xml/kbd_emoji_category6.xml
+++ b/java/res/xml/kbd_emoji_category6.xml
@@ -20,10 +20,10 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
     latin:keyLetterSize="90%p"
     latin:keyLabelSize="60%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:textsArray="@array/emoji_emoticons"
diff --git a/java/res/xml/kbd_emoji_recents.xml b/java/res/xml/kbd_emoji_recents.xml
index 73926ecc0a13a16afd322bb39d8a6c527ffc6d17..edf3872c114d6d21016608cf25e89dfa93c55929 100644
--- a/java/res/xml/kbd_emoji_recents.xml
+++ b/java/res/xml/kbd_emoji_recents.xml
@@ -20,10 +20,10 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="@fraction/emoji_keyboard_key_width"
-    latin:keyLetterSize="@fraction/emoji_keyboard_key_letter_size"
+    latin:keyWidth="@fraction/config_emoji_keyboard_key_width"
+    latin:keyLetterSize="@fraction/config_emoji_keyboard_key_letter_size"
     latin:keyLabelSize="60%p"
-    latin:rowHeight="@fraction/emoji_keyboard_row_height"
+    latin:rowHeight="@fraction/config_emoji_keyboard_row_height"
 >
     <GridRows
         latin:codesArray="@array/emoji_recents"
diff --git a/java/res/xml/kbd_khmer.xml b/java/res/xml/kbd_khmer.xml
index 7a2337a48db78773f891a4b8a0f3b210d3f668ec..d703e78f7f210af94b6fe9af0ce9ce189c7fb58e 100644
--- a/java/res/xml/kbd_khmer.xml
+++ b/java/res/xml/kbd_khmer.xml
@@ -21,9 +21,9 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/key_bottom_gap_5row"
-    latin:keyLetterSize="@fraction/key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/key_uppercase_letter_ratio_5row"
+    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
+    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
+    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
     latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
 >
     <include
diff --git a/java/res/xml/kbd_lao.xml b/java/res/xml/kbd_lao.xml
index 2bba330dee7881b975933efcba52ce50db660b1e..6f77095629667d1b78042ae3dd0e25b58eaf12be 100644
--- a/java/res/xml/kbd_lao.xml
+++ b/java/res/xml/kbd_lao.xml
@@ -21,9 +21,9 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/key_bottom_gap_5row"
-    latin:keyLetterSize="@fraction/key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/key_uppercase_letter_ratio_5row"
+    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
+    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
+    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
     latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
 >
     <include
diff --git a/java/res/xml/kbd_more_keys_keyboard_template.xml b/java/res/xml/kbd_more_keys_keyboard_template.xml
index 537973d031483d4e74b02a0ac9a6580c1ecfa0d7..7104ec7e06940987ddac08da3875ec0580df4e6d 100644
--- a/java/res/xml/kbd_more_keys_keyboard_template.xml
+++ b/java/res/xml/kbd_more_keys_keyboard_template.xml
@@ -20,7 +20,7 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:rowHeight="@dimen/popup_key_height"
+    latin:rowHeight="@dimen/config_more_keys_keyboard_key_height"
     style="?attr/moreKeysKeyboardStyle"
     >
 </Keyboard>
diff --git a/java/res/xml/kbd_pcqwerty.xml b/java/res/xml/kbd_pcqwerty.xml
index 5155bc510d93ab07c18427f33f07e853b04604b6..045696451f4d4d2cd340942eefe6091a878a109f 100644
--- a/java/res/xml/kbd_pcqwerty.xml
+++ b/java/res/xml/kbd_pcqwerty.xml
@@ -21,9 +21,9 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/key_bottom_gap_5row"
-    latin:keyLetterSize="@fraction/key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/key_uppercase_letter_ratio_5row"
+    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
+    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
+    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
     latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
 >
     <include
diff --git a/java/res/xml/kbd_suggestions_pane_template.xml b/java/res/xml/kbd_suggestions_pane_template.xml
index 21316e6bb97240b5c7d98b235c7b4574a77a8e20..5b4f60673e8b75baffba8ddf221980cdf562aa5c 100644
--- a/java/res/xml/kbd_suggestions_pane_template.xml
+++ b/java/res/xml/kbd_suggestions_pane_template.xml
@@ -20,6 +20,6 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:rowHeight="@dimen/more_suggestions_row_height"
+    latin:rowHeight="@dimen/config_more_suggestions_row_height"
     >
 </Keyboard>
diff --git a/java/res/xml/kbd_thai.xml b/java/res/xml/kbd_thai.xml
index 294bffb5b8b621e707b4883e4d9684183b23dfb2..7e65217f9d6316edefea73f8a03d992a2ae0d648 100644
--- a/java/res/xml/kbd_thai.xml
+++ b/java/res/xml/kbd_thai.xml
@@ -21,9 +21,9 @@
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/key_bottom_gap_5row"
-    latin:keyLetterSize="@fraction/key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/key_uppercase_letter_ratio_5row"
+    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
+    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
+    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
     latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
 >
     <include
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index 73896dfd384a8efae814a720c7ef79b14375215c..c601cf17ebe5acf3ca7d3b45cc17ba40fc8cda08 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -82,7 +82,7 @@ public final class AccessibleKeyboardViewProxy extends AccessibilityDelegateComp
     private void initInternal(final InputMethodService inputMethod) {
         mInputMethod = inputMethod;
         mEdgeSlop = inputMethod.getResources().getDimensionPixelSize(
-                R.dimen.accessibility_edge_slop);
+                R.dimen.config_accessibility_edge_slop);
     }
 
     /**
diff --git a/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
index 561a801140a9353defa019ca8c2555c3760ba806..ff0d53865c7dbfc44835971a27a35b9becc5bb03 100644
--- a/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/EmojiPalettesView.java
@@ -149,7 +149,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
         public EmojiCategory(final SharedPreferences prefs, final Resources res,
                 final KeyboardLayoutSet layoutSet) {
             mPrefs = prefs;
-            mMaxPageKeyCount = res.getInteger(R.integer.emoji_keyboard_max_key_count);
+            mMaxPageKeyCount = res.getInteger(R.integer.config_emoji_keyboard_max_page_key_count);
             mLayoutSet = layoutSet;
             for (int i = 0; i < sCategoryName.length; ++i) {
                 mCategoryNameToIdMap.put(sCategoryName[i], i);
@@ -427,7 +427,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
         final int width = ResourceUtils.getDefaultKeyboardWidth(res)
                 + getPaddingLeft() + getPaddingRight();
         final int height = ResourceUtils.getDefaultKeyboardHeight(res)
-                + res.getDimensionPixelSize(R.dimen.suggestions_strip_height)
+                + res.getDimensionPixelSize(R.dimen.config_suggestions_strip_height)
                 + getPaddingTop() + getPaddingBottom();
         setMeasuredDimension(width, height);
     }
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index e4051e88776e9a1a5c17d0806d6adf771ed0f7b8..674f7350b77254adddad961ffad9e040ec08ae1f 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -24,6 +24,7 @@ import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -83,9 +84,9 @@ import java.util.WeakHashMap;
  *
  * @attr ref R.styleable#MainKeyboardView_autoCorrectionSpacebarLedEnabled
  * @attr ref R.styleable#MainKeyboardView_autoCorrectionSpacebarLedIcon
- * @attr ref R.styleable#MainKeyboardView_spacebarTextRatio
- * @attr ref R.styleable#MainKeyboardView_spacebarTextColor
- * @attr ref R.styleable#MainKeyboardView_spacebarTextShadowColor
+ * @attr ref R.styleable#MainKeyboardView_languageOnSpacebarTextRatio
+ * @attr ref R.styleable#MainKeyboardView_languageOnSpacebarTextColor
+ * @attr ref R.styleable#MainKeyboardView_languageOnSpacebarTextShadowColor
  * @attr ref R.styleable#MainKeyboardView_languageOnSpacebarFinalAlpha
  * @attr ref R.styleable#MainKeyboardView_languageOnSpacebarFadeoutAnimator
  * @attr ref R.styleable#MainKeyboardView_altCodeKeyWhileTypingFadeoutAnimator
@@ -136,10 +137,10 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
     private boolean mNeedsToDisplayLanguage;
     private boolean mHasMultipleEnabledIMEsOrSubtypes;
     private int mLanguageOnSpacebarAnimAlpha = Constants.Color.ALPHA_OPAQUE;
-    private final float mSpacebarTextRatio;
-    private float mSpacebarTextSize;
-    private final int mSpacebarTextColor;
-    private final int mSpacebarTextShadowColor;
+    private final float mLanguageOnSpacebarTextRatio;
+    private float mLanguageOnSpacebarTextSize;
+    private final int mLanguageOnSpacebarTextColor;
+    private final int mLanguageOnSpacebarTextShadowColor;
     // The minimum x-scale to fit the language name on spacebar.
     private static final float MINIMUM_XSCALE_OF_LANGUAGE_NAME = 0.8f;
     // Stuff to draw auto correction LED on spacebar.
@@ -213,7 +214,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
     public MainKeyboardView(final Context context, final AttributeSet attrs, final int defStyle) {
         super(context, attrs, defStyle);
 
-        PointerTracker.init(getResources());
+        final Resources res = getResources();
+        PointerTracker.init(res);
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
         final boolean forceNonDistinctMultitouch = prefs.getBoolean(
                 DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH, false);
@@ -235,12 +237,12 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
                 R.styleable.MainKeyboardView_autoCorrectionSpacebarLedEnabled, false);
         mAutoCorrectionSpacebarLedIcon = mainKeyboardViewAttr.getDrawable(
                 R.styleable.MainKeyboardView_autoCorrectionSpacebarLedIcon);
-        mSpacebarTextRatio = mainKeyboardViewAttr.getFraction(
-                R.styleable.MainKeyboardView_spacebarTextRatio, 1, 1, 1.0f);
-        mSpacebarTextColor = mainKeyboardViewAttr.getColor(
-                R.styleable.MainKeyboardView_spacebarTextColor, 0);
-        mSpacebarTextShadowColor = mainKeyboardViewAttr.getColor(
-                R.styleable.MainKeyboardView_spacebarTextShadowColor, 0);
+        mLanguageOnSpacebarTextRatio = mainKeyboardViewAttr.getFraction(
+                R.styleable.MainKeyboardView_languageOnSpacebarTextRatio, 1, 1, 1.0f);
+        mLanguageOnSpacebarTextColor = mainKeyboardViewAttr.getColor(
+                R.styleable.MainKeyboardView_languageOnSpacebarTextColor, 0);
+        mLanguageOnSpacebarTextShadowColor = mainKeyboardViewAttr.getColor(
+                R.styleable.MainKeyboardView_languageOnSpacebarTextShadowColor, 0);
         mLanguageOnSpacebarFinalAlpha = mainKeyboardViewAttr.getInt(
                 R.styleable.MainKeyboardView_languageOnSpacebarFinalAlpha,
                 Constants.Color.ALPHA_OPAQUE);
@@ -311,8 +313,8 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
 
         mKeyboardActionListener = KeyboardActionListener.EMPTY_LISTENER;
 
-        mLanguageOnSpacebarHorizontalMargin =
-                (int) getResources().getDimension(R.dimen.language_on_spacebar_horizontal_margin);
+        mLanguageOnSpacebarHorizontalMargin = (int)res.getDimension(
+                R.dimen.config_language_on_spacebar_horizontal_margin);
     }
 
     @Override
@@ -445,7 +447,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
         mSpaceIcon = (mSpaceKey != null)
                 ? mSpaceKey.getIcon(keyboard.mIconsSet, Constants.Color.ALPHA_OPAQUE) : null;
         final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap;
-        mSpacebarTextSize = keyHeight * mSpacebarTextRatio;
+        mLanguageOnSpacebarTextSize = keyHeight * mLanguageOnSpacebarTextRatio;
         if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
             final int orientation = getContext().getResources().getConfiguration().orientation;
             ResearchLogger.mainKeyboardView_setKeyboard(keyboard, orientation);
@@ -1190,17 +1192,17 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
         if (mNeedsToDisplayLanguage) {
             paint.setTextAlign(Align.CENTER);
             paint.setTypeface(Typeface.DEFAULT);
-            paint.setTextSize(mSpacebarTextSize);
+            paint.setTextSize(mLanguageOnSpacebarTextSize);
             final InputMethodSubtype subtype = getKeyboard().mId.mSubtype;
             final String language = layoutLanguageOnSpacebar(paint, subtype, width);
             // Draw language text with shadow
             final float descent = paint.descent();
             final float textHeight = -paint.ascent() + descent;
             final float baseline = height / 2 + textHeight / 2;
-            paint.setColor(mSpacebarTextShadowColor);
+            paint.setColor(mLanguageOnSpacebarTextShadowColor);
             paint.setAlpha(mLanguageOnSpacebarAnimAlpha);
             canvas.drawText(language, width / 2, baseline - descent - 1, paint);
-            paint.setColor(mSpacebarTextColor);
+            paint.setColor(mLanguageOnSpacebarTextColor);
             paint.setAlpha(mLanguageOnSpacebarAnimAlpha);
             canvas.drawText(language, width / 2, baseline - descent, paint);
         }
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
index fca727b2961fb4dda0d5cb4eb2e06ff03596fdc5..67052438050a7c238c9011eb2756cdfaca377f73 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
@@ -298,7 +298,7 @@ public final class MoreKeysKeyboard extends Keyboard {
                 height = keyPreviewDrawParams.mPreviewVisibleHeight + mParams.mVerticalGap;
             } else {
                 final float padding = context.getResources().getDimension(
-                        R.dimen.more_keys_keyboard_key_horizontal_padding)
+                        R.dimen.config_more_keys_keyboard_key_horizontal_padding)
                         + (parentKey.hasLabelsInMoreKeys()
                                 ? mParams.mDefaultKeyWidth * LABEL_PADDING_RATIO : 0.0f);
                 width = getMaxKeyWidth(parentKey, mParams.mDefaultKeyWidth, padding,
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 8492d938521a1301d5c7eb176c80083ce6a4b11e..a7c4685385ed00b97e67c0409754df82dafbfb65 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -52,7 +52,7 @@ public class MoreKeysKeyboardView extends KeyboardView implements MoreKeysPanel
 
         final Resources res = context.getResources();
         mKeyDetector = new MoreKeysDetector(
-                res.getDimension(R.dimen.more_keys_keyboard_slide_allowance));
+                res.getDimension(R.dimen.config_more_keys_keyboard_slide_allowance));
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/keyboard/internal/EmojiLayoutParams.java b/java/src/com/android/inputmethod/keyboard/internal/EmojiLayoutParams.java
index 0796f8ea1c4666a34124e83d9bc38758f0c02056..12e0632618c53c400a819cc9e6e98130bf5e8895 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/EmojiLayoutParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/EmojiLayoutParams.java
@@ -40,16 +40,16 @@ public class EmojiLayoutParams {
     public EmojiLayoutParams(final Resources res) {
         final int defaultKeyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
         final int defaultKeyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
-        mKeyVerticalGap = (int) res.getFraction(R.fraction.key_bottom_gap_holo,
+        mKeyVerticalGap = (int) res.getFraction(R.fraction.config_key_vertical_gap_holo,
                 defaultKeyboardHeight, defaultKeyboardHeight);
-        mBottomPadding = (int) res.getFraction(R.fraction.keyboard_bottom_padding_holo,
+        mBottomPadding = (int) res.getFraction(R.fraction.config_keyboard_bottom_padding_holo,
                 defaultKeyboardHeight, defaultKeyboardHeight);
-        mTopPadding = (int) res.getFraction(R.fraction.keyboard_top_padding_holo,
+        mTopPadding = (int) res.getFraction(R.fraction.config_keyboard_top_padding_holo,
                 defaultKeyboardHeight, defaultKeyboardHeight);
-        mKeyHorizontalGap = (int) (res.getFraction(R.fraction.key_horizontal_gap_holo,
+        mKeyHorizontalGap = (int) (res.getFraction(R.fraction.config_key_horizontal_gap_holo,
                 defaultKeyboardWidth, defaultKeyboardWidth));
         mEmojiCategoryPageIdViewHeight =
-                (int) (res.getDimension(R.dimen.emoji_category_page_id_height));
+                (int) (res.getDimension(R.dimen.config_emoji_category_page_id_height));
         final int baseheight = defaultKeyboardHeight - mBottomPadding - mTopPadding
                 + mKeyVerticalGap;
         mEmojiActionBarHeight = baseheight / DEFAULT_KEYBOARD_ROWS
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index 0e1a33a6c8d804adee545ebd4d4d10b7a31f7360..52012c8460b3f808dc9c24385cc5bc6b12332633 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -66,7 +66,8 @@ public final class MoreSuggestions extends Keyboard {
             clearKeys();
             mDivider = res.getDrawable(R.drawable.more_suggestions_divider);
             mDividerWidth = mDivider.getIntrinsicWidth();
-            final float padding = res.getDimension(R.dimen.more_suggestions_key_horizontal_padding);
+            final float padding = res.getDimension(
+                    R.dimen.config_more_suggestions_key_horizontal_padding);
 
             int row = 0;
             int index = fromIndex;
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
index 0ebe377822b3b985c7284bee81587262bfa952bc..549ff0d9d50cbfd068e6ea61925feeec8a26234d 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
@@ -54,7 +54,7 @@ public final class MoreSuggestionsView extends MoreKeysKeyboardView {
 
     public void adjustVerticalCorrectionForModalMode() {
         // Set vertical correction to zero (Reset more keys keyboard sliding allowance
-        // {@link R#dimen.more_keys_keyboard_slide_allowance}).
+        // {@link R#dimen.config_more_keys_keyboard_slide_allowance}).
         mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop());
     }
 
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index faa5560e4bf6b80aa4caea0eb89f3add78630b73..72281e62c4258714b123d32d15b0c93f6fb38260 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -119,7 +119,8 @@ final class SuggestionStripLayoutHelper {
         mDividerWidth = dividerView.getMeasuredWidth();
 
         final Resources res = wordView.getResources();
-        mSuggestionsStripHeight = res.getDimensionPixelSize(R.dimen.suggestions_strip_height);
+        mSuggestionsStripHeight = res.getDimensionPixelSize(
+                R.dimen.config_suggestions_strip_height);
 
         final TypedArray a = context.obtainStyledAttributes(attrs,
                 R.styleable.SuggestionStripView, defStyle, R.style.SuggestionStripView);
@@ -145,15 +146,17 @@ final class SuggestionStripLayoutHelper {
         a.recycle();
 
         mMoreSuggestionsHint = getMoreSuggestionsHint(res,
-                res.getDimension(R.dimen.more_suggestions_hint_text_size), mColorAutoCorrect);
+                res.getDimension(R.dimen.config_more_suggestions_hint_text_size),
+                mColorAutoCorrect);
         mCenterPositionInStrip = mSuggestionsCountInStrip / 2;
         // Assuming there are at least three suggestions. Also, note that the suggestions are
         // laid out according to script direction, so this is left of the center for LTR scripts
         // and right of the center for RTL scripts.
         mTypedWordPositionWhenAutocorrect = mCenterPositionInStrip - 1;
         mMoreSuggestionsBottomGap = res.getDimensionPixelOffset(
-                R.dimen.more_suggestions_bottom_gap);
-        mMoreSuggestionsRowHeight = res.getDimensionPixelSize(R.dimen.more_suggestions_row_height);
+                R.dimen.config_more_suggestions_bottom_gap);
+        mMoreSuggestionsRowHeight = res.getDimensionPixelSize(
+                R.dimen.config_more_suggestions_row_height);
 
         final LayoutInflater inflater = LayoutInflater.from(context);
         mWordToSaveView = (TextView)inflater.inflate(R.layout.suggestion_word, null);
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index 75f17c55991a800ee4740390092e7a36e24d48e3..aa87affa22e381858428bc0b3bc0afea49abb63c 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -112,7 +112,7 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick
 
         final Resources res = context.getResources();
         mMoreSuggestionsModalTolerance = res.getDimensionPixelOffset(
-                R.dimen.more_suggestions_modal_tolerance);
+                R.dimen.config_more_suggestions_modal_tolerance);
         mMoreSuggestionsSlidingDetector = new GestureDetector(
                 context, mMoreSuggestionsSlidingListener);
     }
diff --git a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
index 22c92446ad625c1bccebdbdc15b2fd9b0ef4b700..deb28a08d47242ed93f01da769e1859c0cf21c5f 100644
--- a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
@@ -227,19 +227,19 @@ public final class ResourceUtils {
         final String keyboardHeightString = getDeviceOverrideValue(res, R.array.keyboard_heights);
         final float keyboardHeight;
         if (TextUtils.isEmpty(keyboardHeightString)) {
-            keyboardHeight = res.getDimension(R.dimen.keyboardHeight);
+            keyboardHeight = res.getDimension(R.dimen.config_default_keyboard_height);
         } else {
             keyboardHeight = Float.parseFloat(keyboardHeightString) * dm.density;
         }
         final float maxKeyboardHeight = res.getFraction(
-                R.fraction.maxKeyboardHeight, dm.heightPixels, dm.heightPixels);
+                R.fraction.config_max_keyboard_height, dm.heightPixels, dm.heightPixels);
         float minKeyboardHeight = res.getFraction(
-                R.fraction.minKeyboardHeight, dm.heightPixels, dm.heightPixels);
+                R.fraction.config_min_keyboard_height, dm.heightPixels, dm.heightPixels);
         if (minKeyboardHeight < 0.0f) {
             // Specified fraction was negative, so it should be calculated against display
             // width.
             minKeyboardHeight = -res.getFraction(
-                    R.fraction.minKeyboardHeight, dm.widthPixels, dm.widthPixels);
+                    R.fraction.config_min_keyboard_height, dm.widthPixels, dm.widthPixels);
         }
         // Keyboard height will not exceed maxKeyboardHeight and will not be less than
         // minKeyboardHeight.