Merge "Queuing PointerTracker to support n-key roll-over and shift modifier." into gingerbread
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
old mode 100755
new mode 100644
index 48ebb61..045e1bb
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
old mode 100755
new mode 100644
index 38b8b48..14424b4
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_off.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
old mode 100755
new mode 100644
index 147c1b2..f30ad1e
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_normal_on.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
old mode 100755
new mode 100644
index f8affea..3622e62
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
old mode 100755
new mode 100644
index 75962e9..2733f9a
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_off.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
old mode 100755
new mode 100644
index b7dccfe..a351be7
--- a/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_pressed_on.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
old mode 100755
new mode 100644
index 9ccad80..e9e889c
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
old mode 100755
new mode 100644
index ce58880..959c6d1
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_normal.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
index fe6c517..1e6688c 100644
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_popup_selected.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
old mode 100755
new mode 100644
index d09bd3d..597eb15
--- a/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
+++ b/java/res/drawable-hdpi/btn_keyboard_key_light_pressed.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
old mode 100755
new mode 100644
index 1dd1d0f..92b4788
--- a/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
old mode 100755
new mode 100644
index 2cb619e..cfeeefb
--- a/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
+++ b/java/res/drawable-hdpi/keyboard_key_feedback_more_background.9.png
Binary files differ
diff --git a/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png
old mode 100755
new mode 100644
index 8cc85b7..7ca3e61
--- a/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png
+++ b/java/res/drawable-hdpi/keyboard_suggest_strip_divider.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_bkeyboard_globe.png b/java/res/drawable-hdpi/sym_bkeyboard_globe.png
deleted file mode 100644
index f5dbe0c..0000000
--- a/java/res/drawable-hdpi/sym_bkeyboard_globe.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
index c7638bf..889477c 100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
index 7acb07c..b0f6d7f 100644
--- a/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
+++ b/java/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_globe.png b/java/res/drawable-hdpi/sym_keyboard_globe.png
deleted file mode 100644
index fa74764..0000000
--- a/java/res/drawable-hdpi/sym_keyboard_globe.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png
index 65ccfda..dcc4bd5 100644
--- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png
+++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_left.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png
index 0d01bc2..ecf61a9 100644
--- a/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png
+++ b/java/res/drawable-hdpi/sym_keyboard_language_arrows_right.png
Binary files differ
diff --git a/java/res/drawable-hdpi/sym_keyboard_settings.png b/java/res/drawable-hdpi/sym_keyboard_settings.png
old mode 100644
new mode 100755
index f3bcdbc..d57f7a4
--- a/java/res/drawable-hdpi/sym_keyboard_settings.png
+++ b/java/res/drawable-hdpi/sym_keyboard_settings.png
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_bkeyboard_globe.png b/java/res/drawable-mdpi/sym_bkeyboard_globe.png
deleted file mode 100644
index c6595cf..0000000
--- a/java/res/drawable-mdpi/sym_bkeyboard_globe.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable-mdpi/sym_keyboard_globe.png b/java/res/drawable-mdpi/sym_keyboard_globe.png
deleted file mode 100644
index f30c1b6..0000000
--- a/java/res/drawable-mdpi/sym_keyboard_globe.png
+++ /dev/null
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_gingerbread.xml b/java/res/drawable/btn_keyboard_key_gingerbread.xml
index 24a5479..4a113a8 100644
--- a/java/res/drawable/btn_keyboard_key_gingerbread.xml
+++ b/java/res/drawable/btn_keyboard_key_gingerbread.xml
@@ -16,10 +16,16 @@
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
+    <!-- Functional keys. -->
+
+    <item android:state_single="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_pressed" />
+    <item android:state_single="true"
+          android:drawable="@drawable/btn_keyboard_key_dark_normal" />
+
     <!-- Toggle keys. Use checkable/checked state. -->
 
-    <item android:state_checkable="true" android:state_checked="true"
-          android:state_pressed="true"
+    <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
           android:drawable="@drawable/btn_keyboard_key_dark_pressed_on" />
     <item android:state_checkable="true" android:state_pressed="true"
           android:drawable="@drawable/btn_keyboard_key_dark_pressed_off" />
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 0457395..fb8d062 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -112,92 +112,99 @@
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-da/kbd_qwerty_black.xml b/java/res/xml-da/kbd_qwerty_black.xml
index 575f0fa..b9d1d17 100644
--- a/java/res/xml-da/kbd_qwerty_black.xml
+++ b/java/res/xml-da/kbd_qwerty_black.xml
@@ -114,77 +114,83 @@
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
                 android:isRepeatable="true"/>
     </Row>
-
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
@@ -193,11 +199,11 @@
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 827ad62..763627a 100755
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/* 
+/*
 **
 ** Copyright 2008, The Android Open Source Project
 **
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
 **
-**     http://www.apache.org/licenses/LICENSE-2.0 
+**     http://www.apache.org/licenses/LICENSE-2.0
 **
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
 -->
@@ -49,9 +49,9 @@
         />
         <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
     </Row>
-    
+
     <Row>
-        <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p" 
+        <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_a"
                 android:keyEdgeFlags="left"/>
@@ -67,7 +67,7 @@
         <Key android:codes="107" android:keyLabel="k"/>
         <Key android:codes="108" android:keyLabel="l" android:keyEdgeFlags="right"/>
     </Row>
-    
+
     <Row>
         <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
                 android:keyWidth="15%p" android:isModifier="true"
@@ -90,90 +90,101 @@
         />
         <Key android:codes="109" android:keyLabel="m"/>
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
-                android:keyWidth="15%p" android:keyEdgeFlags="right" 
+                android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
-    
+
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1"
-                android:keyWidth="10%p"/>
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty_black.xml b/java/res/xml-de/kbd_qwerty_black.xml
index 18fdc7d..b0b6c23 100755
--- a/java/res/xml-de/kbd_qwerty_black.xml
+++ b/java/res/xml-de/kbd_qwerty_black.xml
@@ -97,83 +97,94 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 7df32d9..0f08c26 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/* 
+/*
 **
 ** Copyright 2008, The Android Open Source Project
 **
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
 **
-**     http://www.apache.org/licenses/LICENSE-2.0 
+**     http://www.apache.org/licenses/LICENSE-2.0
 **
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
 -->
@@ -26,7 +26,7 @@
     >
 
     <Row>
-        <Key android:codes="97" android:keyLabel="a" 
+        <Key android:codes="97" android:keyLabel="a"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_a"
                 android:keyEdgeFlags="left"/>
@@ -55,7 +55,7 @@
         />
         <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
     </Row>
-    
+
     <Row>
         <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
         <Key android:codes="115" android:keyLabel="s"
@@ -73,7 +73,7 @@
     </Row>
 
     <Row>
-        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift" 
+        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
                 android:keyWidth="15%p" android:isModifier="true"
                 android:iconPreview="@drawable/sym_keyboard_feedback_shift"
                 android:isSticky="true" android:keyEdgeFlags="left"/>
@@ -91,93 +91,102 @@
         />
         <!--Key android:codes="233,224,232,234" android:keyLabel="é"/-->
         <Key android:keyLabel="\'"/>
-        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" 
-                android:keyWidth="15%p" android:keyEdgeFlags="right" 
+        <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
+                android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
-    
+
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
-
 </Keyboard>
-    
diff --git a/java/res/xml-fr/kbd_qwerty_black.xml b/java/res/xml-fr/kbd_qwerty_black.xml
index 78b1da9..6d3aeb8 100644
--- a/java/res/xml-fr/kbd_qwerty_black.xml
+++ b/java/res/xml-fr/kbd_qwerty_black.xml
@@ -99,84 +99,94 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index 0ce5d36..208ba92 100755
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -41,7 +41,7 @@
 	     android:keyIcon="@drawable/sym_keyboard_delete"
             android:keyWidth="13.75%p" android:keyEdgeFlags="right"
             android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            android:isRepeatable="true"/>
+            android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row>
@@ -71,84 +71,95 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 </Keyboard>
     
diff --git a/java/res/xml-iw/kbd_qwerty_black.xml b/java/res/xml-iw/kbd_qwerty_black.xml
index 2bf0c2a..981ad37 100755
--- a/java/res/xml-iw/kbd_qwerty_black.xml
+++ b/java/res/xml-iw/kbd_qwerty_black.xml
@@ -71,84 +71,95 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
 </Keyboard>
 
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index a9e6adc..d033bb0 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -110,92 +110,99 @@
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-nb/kbd_qwerty_black.xml b/java/res/xml-nb/kbd_qwerty_black.xml
index 8d23cc1..14456e6 100644
--- a/java/res/xml-nb/kbd_qwerty_black.xml
+++ b/java/res/xml-nb/kbd_qwerty_black.xml
@@ -115,74 +115,81 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
@@ -191,11 +198,11 @@
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 0c49f37..e512c0b 100755
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -78,89 +78,100 @@
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="11.75%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 </Keyboard>
     
diff --git a/java/res/xml-ru/kbd_qwerty_black.xml b/java/res/xml-ru/kbd_qwerty_black.xml
index a9c88b7..00c3992 100755
--- a/java/res/xml-ru/kbd_qwerty_black.xml
+++ b/java/res/xml-ru/kbd_qwerty_black.xml
@@ -83,83 +83,94 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 117db4c..cab8460 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -74,88 +74,99 @@
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="11.75%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_globe"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty_black.xml b/java/res/xml-sr/kbd_qwerty_black.xml
index 91b118f..00a2894 100644
--- a/java/res/xml-sr/kbd_qwerty_black.xml
+++ b/java/res/xml-sr/kbd_qwerty_black.xml
@@ -79,83 +79,94 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:keyLabel="\@" android:keyWidth="10%p"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
-        <Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
-        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_globe"
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
+        <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
+                android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index 1ffa9dd..514a441 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -119,87 +119,94 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty_black.xml b/java/res/xml-sv/kbd_qwerty_black.xml
index af8cda6..4cc37ce 100644
--- a/java/res/xml-sv/kbd_qwerty_black.xml
+++ b/java/res/xml-sv/kbd_qwerty_black.xml
@@ -119,74 +119,81 @@
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
-        <!--Key android:keyLabel="@string/popular_domain_0"
-                android:keyOutputText="@string/popular_domain_0"
-                android:popupKeyboard="@xml/popup_domains"
-                android:keyWidth="20%p"/-->
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_bkeyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="40%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true"/>
         <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
                 android:keyWidth="10%p"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="20%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_bkeyboard_settings"
+                android:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                android:keyWidth="10%p"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_bkeyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
                 android:keyWidth="10%p"/>
@@ -195,11 +202,11 @@
                 android:keyWidth="20%p" android:isRepeatable="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_bkeyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="20%p"/>
-        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
+                android:keyWidth="15%p"/>
+        <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_bkeyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="20%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index 59c61e4..0a0691d 100755
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -4,20 +4,23 @@
 **
 ** Copyright 2008, The Android Open Source Project
 **
-** Licensed under the Apache License, Version 2.0 (the "License"); 
-** you may not use this file except in compliance with the License. 
-** You may obtain a copy of the License at 
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
 **
-**     http://www.apache.org/licenses/LICENSE-2.0 
+**     http://www.apache.org/licenses/LICENSE-2.0
 **
-** Unless required by applicable law or agreed to in writing, software 
-** distributed under the License is distributed on an "AS IS" BASIS, 
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
-** See the License for the specific language governing permissions and 
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
 ** limitations under the License.
 */
 -->
 
+<!-- TODO: Add settings key to other languages -->
+<!-- TODO: Add modifier attr to functional keys in other languages -->
+
 <Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
     android:keyWidth="10%p"
     android:horizontalGap="0px"
@@ -56,9 +59,9 @@
         />
         <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
     </Row>
-    
+
     <Row>
-        <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p" 
+        <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p"
                 android:popupKeyboard="@xml/kbd_popup_template"
                 android:popupCharacters="@string/alternates_for_a"
                 android:keyEdgeFlags="left"/>
@@ -82,9 +85,9 @@
                 android:popupCharacters="@string/alternates_for_l"
                 android:keyEdgeFlags="right"/>
     </Row>
-    
+
     <Row>
-        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift" 
+        <Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
                 android:keyWidth="15%p" android:isModifier="true"
                 android:iconPreview="@drawable/sym_keyboard_feedback_shift"
                 android:isSticky="true" android:keyEdgeFlags="left"/>
@@ -106,99 +109,99 @@
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
                 android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_normal" android:rowEdgeFlags="bottom">
-        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key" 
-                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+        <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_url" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="/" android:keyWidth="10%p"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_email" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel="\@"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_im" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="30%p" android:isRepeatable="true"/>
-        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation" 
-                android:keyWidth="10%p"/>
+                android:keyWidth="30%p" android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:codes="46" android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:keyLabel=":-)" android:keyOutputText=":-) "
                 android:popupKeyboard="@xml/popup_smileys"
-                android:keyWidth="25%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="25%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 
     <Row android:keyboardMode="@+id/mode_webentry" android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_symbol_key"
-                android:keyWidth="10%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="10%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="@integer/key_f1" android:keyIcon="@drawable/sym_keyboard_mic"
                 android:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:keyWidth="20%p" android:isRepeatable="true"/>
+                android:keyWidth="20%p" android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="9" android:keyIcon="@drawable/sym_keyboard_tab"
                 android:iconPreview="@drawable/sym_keyboard_feedback_tab"
-                android:keyWidth="15%p"/>
+                android:keyWidth="15%p" android:isModifier="true"/>
         <Key android:keyLabel="." android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                android:keyWidth="15%p" android:keyEdgeFlags="right"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="right" android:isModifier="true"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml
index 076359c..2865472 100755
--- a/java/res/xml/kbd_qwerty_black.xml
+++ b/java/res/xml/kbd_qwerty_black.xml
@@ -201,5 +201,4 @@
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
                 android:keyWidth="15%p" android:keyEdgeFlags="right"/>
     </Row>
-
 </Keyboard>
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index 3f6b8ac..fad3ebc 100755
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -118,25 +118,25 @@
         />
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
 
     <Row  android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key"
-                android:keyWidth="15%p" android:keyEdgeFlags="left"/>
+                android:keyWidth="15%p" android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
-        <Key android:codes="@integer/key_f1" android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:codes="@integer/key_f1" android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
         <Key android:codes="46" android:keyLabel="."
                 android:popupKeyboard="@xml/popup_punctuation"
-                android:keyWidth="10%p"/>
+                android:keyWidth="10%p" android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return" android:keyWidth="25%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                />
+                android:isModifier="true"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 0ec4c71..b069391 100755
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -85,24 +85,24 @@
         />
         <Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete" android:keyWidth="15%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_delete"
-                android:isRepeatable="true"/>
+                android:isRepeatable="true" android:isModifier="true"/>
     </Row>
     
     <Row android:rowEdgeFlags="bottom">
         <Key android:codes="-2" android:keyLabel="@string/label_alpha_key" android:keyWidth="15%p"
-                android:keyEdgeFlags="left"/>
+                android:keyEdgeFlags="left" android:isModifier="true"/>
         <Key android:codes="@integer/key_settings" android:keyIcon="@drawable/sym_keyboard_settings"
                 android:iconPreview="@drawable/sym_keyboard_feedback_settings"
-                android:keyWidth="10%p"/>
-        <Key android:keyLabel="„" android:keyWidth="10%p" />
+                android:keyWidth="10%p" android:isModifier="true"/>
+        <Key android:keyLabel="„" android:keyWidth="10%p"  android:isModifier="true"/>
         <Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
                 android:keyWidth="30%p"
                 android:iconPreview="@drawable/sym_keyboard_feedback_space"
-                android:isRepeatable="true"/>
-        <Key android:keyLabel="…" android:keyWidth="10%p" />
+                android:isRepeatable="true" android:isModifier="true"/>
+        <Key android:keyLabel="…" android:keyWidth="10%p"  android:isModifier="true"/>
         <Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
                 android:keyWidth="25%p" android:keyEdgeFlags="right"
                 android:iconPreview="@drawable/sym_keyboard_feedback_return"
-                />
+                android:isModifier="true"/>
     </Row>
 </Keyboard>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index a3c956e..b4d2d90 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -61,14 +61,14 @@
             android:defaultValue="@string/voice_mode_main"
             />
 
-    <ListPreference
+    <!-- <ListPreference
             android:key="keyboard_layout"
             android:title="@string/keyboard_layout"
             android:persistent="true"
             android:entryValues="@array/keyboard_layout_modes_values"
             android:entries="@array/keyboard_layout_modes"
             android:defaultValue="4"
-            />
+            />-->
 
     <PreferenceScreen
             android:title="@string/language_selection_title"
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index 223198b..9c0a5a3 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -45,7 +45,7 @@
     public static final int KEYBOARDMODE_WEB = R.id.mode_webentry;
 
     public static final String DEFAULT_LAYOUT_ID = "4";
-    public static final String PREF_KEYBOARD_LAYOUT = "keyboard_layout";
+    public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20100902";
     private static final int[] THEMES = new int [] {
         R.layout.input_basic, R.layout.input_basic_highcontrast, R.layout.input_stone_normal,
         R.layout.input_stone_bold, R.layout.input_gingerbread};
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboard.java b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
index 15e22f3..33519e4 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -628,9 +628,20 @@
     }
 
     class LatinKey extends Keyboard.Key {
-        
+
+        // functional normal state (with properties)
+        private final int[] KEY_STATE_FUNCTIONAL_NORMAL = {
+                android.R.attr.state_single
+        };
+
+        // functional pressed state (with properties)
+        private final int[] KEY_STATE_FUNCTIONAL_PRESSED = {
+                android.R.attr.state_single,
+                android.R.attr.state_pressed
+        };
+
         private boolean mShiftLockEnabled;
-        
+
         public LatinKey(Resources res, Keyboard.Row parent, int x, int y, 
                 XmlResourceParser parser) {
             super(res, parent, x, y, parser);
@@ -639,11 +650,17 @@
                 popupResId = 0;
             }
         }
-        
-        void enableShiftLock() {
+
+        private void enableShiftLock() {
             mShiftLockEnabled = true;
         }
 
+        // sticky is used for shift key.  If a key is not sticky and is modifier,
+        // the key will be treated as functional.
+        private boolean isFunctionalKey() {
+            return !sticky && modifier;
+        }
+
         @Override
         public void onReleased(boolean inside) {
             if (!mShiftLockEnabled) {
@@ -665,6 +682,18 @@
         boolean isInsideSuper(int x, int y) {
             return super.isInside(x, y);
         }
+
+        @Override
+        public int[] getCurrentDrawableState() {
+            if (isFunctionalKey()) {
+                if (pressed) {
+                    return KEY_STATE_FUNCTIONAL_PRESSED;
+                } else {
+                    return KEY_STATE_FUNCTIONAL_NORMAL;
+                }
+            }
+            return super.getCurrentDrawableState();
+        }
     }
 
     /**