diff --git a/app/src/main/assets/language_key_texts/kn.txt b/app/src/main/assets/language_key_texts/kn.txt
index e38d2a63a..f899054ac 100644
--- a/app/src/main/assets/language_key_texts/kn.txt
+++ b/app/src/main/assets/language_key_texts/kn.txt
@@ -1,37 +1,59 @@
[popup_keys]
-ೌ ಔ %
-ೈ ಐ %
-ಾ ಆ %
-ೀ ಈ %
-ೂ ಊ %
-ಬ ಭ %
-ಹ ಙ %
-ಗ ಘ %
-ದ ಧ %
-ಜ ಝ %
-ಡ ಢ
-ೋ ಓ
-ೇ ಏ
-್ ಅ
-ಿ ಇ
-ು ಉ
-ಪ ಫ
-ರ ಱ ೃ
-ಕ ಖ
-ತ ಥ
-ಚ ಛ
-ಟ ಠ
-ೆ ಒ
-ಂ ಎ
-ನ ಣ
-ಲ ಳ
-ಸ ಶ
-ಋ ್ರ
-ಷ ಕ್ಷ
-ಯ ಜ್ಞ
+ಅ %
+ಆ ಾ %
+ಇ ಿ %
+ಈ ೀ %
+ಉ ು %
+ಊ ೂ %
+ಋ ೄ ೃ ೠ %
+ಎ ೆ %
+ಏ ೇ %
+ಐ ೖ ೈ %
+ಒ ೊ
+ಓ ೋ
+ಔ ೌ
+ಂ ಽ ಼ ಃ ೕ
+ಕ ಕ್ಮ ಕ್ಗ ಕ್ಬ ಕ್ಟ್ರ ಕ್ಷ್ಯ ಕ್ಸ ಕ್ನ ಕ್ವ ಕ್ಲ ಕ್ಯ ಕ್ಷ್ಮ ಕ್ಟ ಕ್ತ ಕ್ಕ ಕ್ಷ ಕ್ರ
+ಖ ಖ್ಹ ಖ್ಖ ಖ್ಗಖ್ಯ ಖ್ವ ಖ್ತ
+ಗ ಗ್ಳ ಗ್ಲ್ಯ ಗ್ಸ ಗ್ರ್ಯ ಗ್ಬ ಗ್ಡ ಗ್ದ ಗ್ತ ಗ್ಧ ಗ್ವ ಗ್ನ ಗ್ಯ ಗ್ಗ ಗ್ರ ಗ್ಲ
+ಘ ಘ್ರ ಘ್ನ
+ಙ ಙ್ಮ
+ಚ ಚ್ಕ ಚ್ಮಚ್ಸ ಚ್ಗ ಚ್ಪ ಚ್ಛ್ರ ಚ್ಹ ಚ್ನ ಚ್ತ ಚ್ಡ ಚ್ಯ ಚ್ಛ ಚ್ಚ
+
+ಛ ಛ್ಘ
+ಜ ಜ್ಪ ಜ್ಗ ಜ್ಬ ಜ್ರ ಜ್ಕ ಜ್ಮ ಜ್ನ ಜ್ಯ ಜ್ಞ ಜ್ಜ ಜ್ವ
+ಝ ಝ್ಕ ಝ್ಡ
+ಞ ಞ್ಞ
+ಟ ಟ್ಜ ಟ್ದ ಟ್ಪ ಟ್ಮ ಟ್ರ್ಯ ಟ್ಸ್ಪ ಟ್ಸ್ಮ ಟ್ಬ ಟ್ಸ ಟ್ಲ ಟ್ರ ಟ್ಗ ಟ್ನ ಟ್ವ ಟ್ಟ ಟ್ರ ಟ್ಯ
+ಠ ಠ್ಮ ಠ್ಯ ಠ್ಠ
+ಡ ಡ್ರ್ಯ ಡ್ಶ ಡ್ಸ ಡ್ಳ ಡ್ಬ ಡ್ವ ಡ್ಮ ಡ್ದ ಡ್ಲ ಡ್ಕ ಡ್ನ ಡ್ಗ ಡ್ತ ಡ್ಡ ಡ್ರ ಡ್ಯ
+ಢ ಢ್ಯ
+ಣ ಣ್ಬ ಣ್ಕ ಣ್ನ ಣ್ಗ ಣ್ರ ಣ್ವ ಣ್ತ ಣ್ಮ ಣ್ಯ ಣ್ಣ
+ತ ತ್ಬ ತ್ಚ ತ್ದ ತ್ಗ ತ್ನ ತ್ವ ತ್ಕ ತ್ಲ ತ್ಪ್ರ ತ್ತ್ವ ತ್ರ್ಯ ತ್ಮ ತ್ಸ ತ್ಪ ತ್ಯ ತ್ರ ತ್ತ
+
+ಥ ಥ್ಯ ಥ್ರ ಥ್ಲ ಥ್ವ ಥ್ರ್ಯ
+ದ ದ್ರ್ಯ ದ್ಳ ದ್ನ ದ್ಮ ದ್ದ ದ್ರ ದ್ಗ ದ್ತ ದ್ಕ ದ್ಲ ದ್ಯ ದ್ಧ ದ್ಷ ದ್ಸ ದ್ಹ ದ್ಬ ದ್ವ
+ಧ ಧ್ಬ ಧ್ಪ ಧ್ಗ ಧ್ಭ ಧ್ಧ ಧ್ವ ಧ್ಯ ಧ್ರ
+ನ ನ್ದ ನ್ಪ ನ್ಡ ನ್ಶ ನ್ಫ ನ್ರ ನ್ಕ ನ್ಸ್ಟ ನ್ಗ ನ್ಲ ನ್ಟ ನ್ಸ್ಪ ನ್ಸ ನ್ಮ ನ್ನ ನ್ಯ ನ್ವ
+ಪ ಪ್ಣ ಪ್ಕ ಪ್ಮ ಪ್ಟ್ನ ಪ್ಗ ಪ್ವ ಪ್ಸ್ಟ ಪ್ಡ ಪ್ಸ ಪ್ಟ ಪ್ನ ಪ್ಲ್ಯ ಪ್ಯ ಪ್ತ ಪ್ರ ಪ್ಪ ಪ್ಲ
+ಫ ೞ ಫ್ಬ ಫ್ನ ಫ್ಸ ಫ್ಲ್ಯ ಫ್ಟ ಫ್ಘ ಫ್ಜ ಫ್ಲ ಫ್ಯ ಫ್ರ ಫ್ತ ಫ್ಟ್ವ
+ಬ ಬ್ತ ಬ್ರ್ಯ ಬ್ಗ ಬ್ಭ ಬ್ಜ ಬ್ನ ಬ್ವ ಬ್ಳ ಬ್ಲ್ಯ ಬ್ಲ ಬ್ಸ ಬ್ಧ ಬ್ಯ ಬ್ಬ ಬ್ರ ಬ್ದ
+ಭ ಭ್ಯ ಭ್ರ
+ಮ ಮ್ವ ಮ್ಡ ಮ್ಸ ಮ್ನ ಮ್ಮ ಮ್ಯ ಮ್ಗ ಮ್ಚ್ಯ ಮ್ತ ಮ್ಕ ಮ್ರ ಮ್ಹ ಮ್ಜ ಮ್ದ ಮ್ಚ ಮ್ಥ ಮ್ಲ
+ಯ ಯ್ಶ ಯ್ಲ್ಯ ಯ್ಜ ಯ್ಪ ಯ್ಬ ಯ್ಗ ಯ್ರ ಯ್ನ ಯ್ವ ಯ್ಡ ಯ್ಸ ಯ್ಲ ಯ್ತ ಯ್ದ ಯ್ಕ ಯ್ಯ
+
+ರ ರ್ಟ ರ್ಧ ರ್ಚ ರ್ಪ ಱ ರ್ಣ ರ್ದ ರ್ಗ ರ್ಭ ರ್ಜ ರ್ಷ ರ್ತ ರ್ಕ ರ್ನ ರ್ಶ ರ್ ರ್ಯ ರ್ಮ ರ್ಥ ರ್ವ
+ಲ ಲ್ಶ ಲ್ರ ಲ್ಜ ಲ್ಡ ಲ್ಫ ಲ್ಯ ಲ್ಲ ಲ್ಮ ಲ್ತ ಲ್ಬ ಲ್ಗ ಲ್ಪ ಲ್ಟ ಲ್ದ ಲ್ಕ ಲ್ಸ ಲ್ನ ಲ್ವ
+ವ ವ್ಮ ವ್ಡ ವ್ಶ ವ್ಚ ವ್ಕ ವ್ತ ವ್ಪ ವ್ಟ ವ್ಲ ವ್ಗ ವ್ಳ ವ್ದ ವ್ಹ ವ್ವ ವ್ಯ ವ್ರ ವ್ನ
+ಶ ಶ್ಶ ಶ್ಕ ಶ್ಚ ಶ್ನ ಶ್ಟ ಶ್ಬ ಶ್ಲ ಶ್ರ ಶ್ವ ಶ್ಮ ಶ್ಣ ಶ್ಟ್ರ ಶ್ಗ ಶ್ಯ
+ಷ ಷ್ರ ಷ್ಗ ಷ್ವ ಷ್ಬ ಷ್ಕ್ರ ಷ್ಟ್ಯ ಷ್ನ ಷ್ಪ್ರ ಷ್ಮ ಷ್ಠ ಷ್ಕ ಷ್ಪ ಷ್ಯ ಷ್ಟ ಷ್ಟ್ರ ಷ್ಣ
+ಸ ಸ್ಖ ಸ್ಗ ಸ್ಡ ಸ್ತ್ರ ಸ್ಟ್ರ ಸ್ಮ ಸ್ಲ ಸ್ರ ಸ್ನ ಸ್ಕ ಸ್ಪ ಸ್ಟ ಸ್ತ್ರ ಸ್ಸ ಸ್ವ ಸ್ಥ ಸ್ತ ಸ್ಯ
+ಹ ಹ್ಸ ಹ್ಞ ಹ್ರ ಹ್ಹ ಹ್ಲ ಹ್ತ ಹ್ಳ ಹ್ವ ಹ್ನ ಹ್ಮ ಹ್ಯ
+ಳ ಳ್ರ ಳ್ಲ ಳ್ಳ್ಯ ಳ್ನ ಳ್ದ ಳ್ಗ ಳ್ಕ ಳ್ಬ ಳ್ಮ ಳ್ಯ ಳ್ವ ಳ್ತ ಳ್ಳ
[labels]
alphabet: ಅಆಇ
+symbol: ?೧೨೩
[number_row]
೧ ೨ ೩ ೪ ೫ ೬ ೭ ೮ ೯ ೦
diff --git a/app/src/main/assets/layouts/kannada.txt b/app/src/main/assets/layouts/kannada.txt
index d4668e36f..4df75750c 100644
--- a/app/src/main/assets/layouts/kannada.txt
+++ b/app/src/main/assets/layouts/kannada.txt
@@ -1,34 +1,34 @@
-ೌ
-ೈ
-ಾ
-ೀ
-ೂ
-ಬ
-ಹ
-ಗ
-ದ
-ಜ
-ಡ
+ೌ ಔ %
+ೈ ಐ %
+ಾ ಆ %
+ೀ ಈ %
+ೂ ಊ %
+ಬ ಭ %
+ಹ ಙ %
+ಗ ಘ %
+ದ ಧ %
+ಜ ಝ %
+ಡ ಢ
-ೋ
-ೇ
-್
-ಿ
-ು
-ಪ
-ರ
-ಕ
-ತ
-ಚ
-ಟ
+ೋ ಓ
+ೇ ಏ
+್ ಅ
+ಿ ಇ
+ು ಉ
+ಪ ಫ
+ರ ಱ ೃ
+ಕ ಖ
+ತ ಥ
+ಚ ಛ
+ಟ ಠ
-ೆ
-ಂ
+ೆ ಒ
+ಂ ಎ
ಮ
-ನ
+ನ ಣ
ವ
-ಲ
-ಸ
-ಋ
-ಷ
-ಯ
+ಲ ಳ
+ಸ ಶ
+ಋ ್ರ
+ಷ ಕ್ಷ
+ಯ ಜ್ಞ
diff --git a/app/src/main/assets/layouts/kannada_extended.txt b/app/src/main/assets/layouts/kannada_extended.txt
new file mode 100644
index 000000000..c094afa84
--- /dev/null
+++ b/app/src/main/assets/layouts/kannada_extended.txt
@@ -0,0 +1,53 @@
+ಅ
+ಆ
+ಇ
+ಈ
+ಉ
+ಊ
+ಋ
+ಎ
+ಏ
+ಐ
+
+ಒ
+ಓ
+ಔ
+ಂ
+ಕ
+ಖ
+ಗ
+ಘ
+ಙ
+ಚ
+
+ಛ
+ಜ
+ಝ
+ಞ
+ಟ
+ಠ
+ಡ
+ಢ
+ಣ
+ತ
+
+ಥ
+ದ
+ಧ
+ನ
+ಪ
+ಫ
+ಬ
+ಭ
+ಮ
+ಯ
+
+್
+ರ
+ಲ
+ವ
+ಶ
+ಷ
+ಸ
+ಹ
+ಳ
diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
index b92c23352..ddb618911 100644
--- a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
+++ b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/LocaleKeyboardInfos.kt
@@ -50,7 +50,8 @@ class LocaleKeyboardInfos(dataStream: InputStream?, locale: Locale) {
}
val labelFlags = when (locale.language) { // todo: move to the info file
"hy", "ar", "be", "fa", "hi", "lo", "mr", "ne", "th", "ur" -> Key.LABEL_FLAGS_FONT_NORMAL
- "kn", "km", "ml", "si", "ta", "te" -> Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_AUTO_X_SCALE
+ "km", "ml", "si", "ta", "te" -> Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_AUTO_X_SCALE
+ "kn" -> Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_AUTO_X_SCALE or Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO
else -> 0
}
diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml
index b11a78830..02024b2e6 100644
--- a/app/src/main/res/values-kn/strings.xml
+++ b/app/src/main/res/values-kn/strings.xml
@@ -58,6 +58,7 @@
"ಇಂಗ್ಲಿಷ್ (US) (%s)"
"ಸ್ಪ್ಯಾನಿಷ್ (US) (%s)"
"ಹಿಂಗ್ಲಿಷ್ (%s)"
+ "%s (ವಿಸ್ತರಿಸಲಾಗಿದೆ)"
"ಸರ್ಬಿಯನ್ (%s)"
"%s (ಸಾಂಪ್ರದಾಯಿಕ)"
"%s (ಕಾಂಪ್ಯಾಕ್ಟ್)"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1c1049130..4c36c256c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -299,6 +299,9 @@
Hinglish (%s)
+
+ %s (Extended)
Kaitag (%s)
diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml
index ea86e1ef6..738198c9a 100644
--- a/app/src/main/res/xml/method.xml
+++ b/app/src/main/res/xml/method.xml
@@ -63,6 +63,7 @@
kk: Kazakh/russian
km_KH: Khmer (Cambodia)/khmer
kn_IN: Kannada (India)/kannada
+ kn_IN: Kannada Extended (India)/kannada
ky: Kyrgyz/russian
lo_LA: Lao (Laos)/lao
lt: Lithuanian/qwerty
@@ -601,6 +602,15 @@
android:imeSubtypeExtraValue="KeyboardLayoutSet=kannada,EmojiCapable"
android:isAsciiCapable="false"
/>
+