diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml
index 518e74af1302990ae9373b35556eccecc04e2219..621a2ea9294d6a6eaa588fa1710fed948888dd78 100644
--- a/java/res/values/donottranslate-altchars.xml
+++ b/java/res/values/donottranslate-altchars.xml
@@ -47,11 +47,7 @@
     <string name="alternates_for_currency_dollar">¢,£,€,¥,₱</string>
     <string name="alternates_for_currency_euro">¢,£,$,¥,₱</string>
     <string name="alternates_for_currency_pound">¢,$,€,¥,₱</string>
-    <string name="alternates_for_mic">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@drawable/sym_keyboard_mic|\@integer/key_voice"</string>
     <string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string>
-    <string name="alternates_for_settings_slash">"\@drawable/sym_keyboard_settings|\@integer/key_settings,/"</string>
-    <string name="alternates_for_settings_at">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@"</string>
-    <string name="alternates_for_settings_comma">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\\,"</string>
     <string name="alternates_for_punctuation">":,/,&amp;,(,),-,+,;,\@,\',\",\?,!,\\,"</string>
     <string name="keylabel_for_popular_domain">".com"</string>
     <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index ea5d4ccd2e3d3d7a94dd7060a6e719a7e05ccf1e..bfc7c4ff2d65825e3bdd97c5cd5c38972adb04bb 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -21,14 +21,45 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <!-- Functional key styles -->
+    <!-- Base key style for the functional key -->
     <switch>
-        <case
+       <case
             latin:colorScheme="white"
         >
             <key-style
                 latin:styleName="functionalKeyStyle"
                 latin:isFunctional="true" />
+        </case>
+        <case
+            latin:colorScheme="black"
+        >
+            <key-style
+                latin:styleName="functionalKeyStyle" />
+        </case>
+    </switch>
+    <!-- Base key style for the key which may have settings key as popup key -->
+    <switch>
+        <case
+            latin:hasSettingsKey="true"
+        >
+            <key-style
+                latin:styleName="settingsPopupStyle"
+                latin:parentStyle="functionalKeyStyle" />
+        </case>
+        <!-- latin:hasSettingsKey="false" -->
+        <default>
+            <key-style
+                latin:styleName="settingsPopupStyle"
+                latin:keyHintIcon="@drawable/hint_popup"
+                latin:popupCharacters="\@drawable/sym_keyboard_settings|\@integer/key_settings"
+                latin:parentStyle="functionalKeyStyle" />
+        </default>
+    </switch>
+    <!-- Functional key styles -->
+    <switch>
+        <case
+            latin:colorScheme="white"
+        >
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="@integer/key_shift"
@@ -90,9 +121,7 @@
                 latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_keyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                latin:keyHintIcon="@drawable/hint_popup"
-                latin:popupCharacters="@string/alternates_for_mic"
-                latin:parentStyle="functionalKeyStyle" />
+                latin:parentStyle="settingsPopupStyle" />
             <!-- Note: This key style is not for functional tab key. This is used for the tab key
                  which is laid out as normal letter key. -->
             <key-style
@@ -104,8 +133,6 @@
         <case
             latin:colorScheme="black"
         >
-            <key-style
-                latin:styleName="functionalKeyStyle" />
             <key-style
                 latin:styleName="shiftKeyStyle"
                 latin:code="@integer/key_shift"
@@ -167,9 +194,7 @@
                 latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_bkeyboard_mic"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
-                latin:keyHintIcon="@drawable/hint_popup"
-                latin:popupCharacters="@string/alternates_for_mic"
-                latin:parentStyle="functionalKeyStyle" />
+                latin:parentStyle="settingsPopupStyle" />
             <!-- Note: This key style is not for functional tab key. This is used for the tab key
                  which is laid out as normal letter key. -->
             <key-style
diff --git a/java/res/xml/kbd_qwerty_f1.xml b/java/res/xml/kbd_qwerty_f1.xml
index c93b8605a59ac65205e29403f075cdcc1b89f0d7..3ebdd103953dd52f92b80a5e079c74ea960a5985 100644
--- a/java/res/xml/kbd_qwerty_f1.xml
+++ b/java/res/xml/kbd_qwerty_f1.xml
@@ -23,81 +23,32 @@
 >
     <switch>
         <case
-            latin:hasSettingsKey="true"
+            latin:mode="url"
         >
-            <switch>
-                <case
-                    latin:mode="url"
-                >
-                    <Key
-                        latin:keyLabel="/"
-                        latin:isFunctional="true" />
-                </case>
-                <case
-                    latin:mode="email"
-                >
-                    <Key
-                        latin:keyLabel="\@"
-                        latin:isFunctional="true" />
-                </case>
-                <default>
-                    <switch>
-                        <case
-                            latin:hasVoiceKey="true"
-                        >
-                            <Key
-                                latin:keyStyle="micKeyStyle" />
-                        </case>
-                        <case
-                            latin:hasVoiceKey="false"
-                        >
-                            <Key
-                                latin:keyLabel=","
-                                latin:isFunctional="true" />
-                        </case>
-                    </switch>
-                </default>
-            </switch>
+            <Key
+                latin:keyLabel="/"
+                latin:keyStyle="settingsPopupStyle" />
+        </case>
+        <case
+            latin:mode="email"
+        >
+            <Key
+                latin:keyLabel="\@"
+                latin:keyStyle="settingsPopupStyle" />
         </case>
-        <!-- latin:hasSettingsKey="false" -->
         <default>
             <switch>
                 <case
-                    latin:mode="url"
+                    latin:hasVoiceKey="true"
                 >
                     <Key
-                        latin:keyLabel="/"
-                        latin:keyHintIcon="@drawable/hint_popup"
-                        latin:popupCharacters="@string/alternates_for_settings_slash"
-                        latin:isFunctional="true" />
-                </case>
-                <case
-                    latin:mode="email"
-                >
-                    <Key
-                        latin:keyLabel="\@"
-                        latin:keyHintIcon="@drawable/hint_popup"
-                        latin:popupCharacters="@string/alternates_for_settings_at"
-                        latin:isFunctional="true" />
+                        latin:keyStyle="micKeyStyle" />
                 </case>
+                <!-- latin:hasVoiceKey="false" -->
                 <default>
-                    <switch>
-                        <case
-                            latin:hasVoiceKey="true"
-                        >
-                            <Key
-                                latin:keyStyle="micKeyStyle" />
-                        </case>
-                        <case
-                            latin:hasVoiceKey="false"
-                        >
-                            <Key
-                                latin:keyLabel=","
-                                latin:keyHintIcon="@drawable/hint_popup"
-                                latin:popupCharacters="@string/alternates_for_settings_comma"
-                                latin:isFunctional="true" />
-                        </case>
-                    </switch>
+                    <Key
+                        latin:keyLabel=","
+                        latin:keyStyle="settingsPopupStyle" />
                 </default>
             </switch>
         </default>
diff --git a/java/res/xml/kbd_symbols_f1.xml b/java/res/xml/kbd_symbols_f1.xml
index 8487b61585200f198054952ec2801fb826e93223..0fb7136b9702b65c7ef785c8ee49f857e1308413 100644
--- a/java/res/xml/kbd_symbols_f1.xml
+++ b/java/res/xml/kbd_symbols_f1.xml
@@ -28,14 +28,11 @@
             <Key
                 latin:keyStyle="micKeyStyle" />
         </case>
-        <case
-            latin:hasVoiceKey="false"
-        >
+        <!-- latin:hasVoiceKey="false" -->
+        <default>
             <Key
                 latin:keyLabel=","
-                latin:keyHintIcon="@drawable/hint_popup"
-                latin:popupCharacters="@string/alternates_for_settings_comma"
-                latin:keyStyle="functionalKeyStyle" />
-        </case>
+                latin:keyStyle="settingsPopupStyle" />
+        </default>
     </switch>
 </merge>