From e80bffc0b19bdca0f1599e8d4ab9b9d09fa0b62b Mon Sep 17 00:00:00 2001
From: NaeemBolchhi <42773187+NaeemBolchhi@users.noreply.github.com>
Date: Tue, 28 Oct 2025 00:00:27 +0600
Subject: [PATCH] feat: add Asset, Colemak, Colemak-DH, Niro, Soul, and Workman
layouts (#71)
---
.../fossify/keyboard/extensions/Context.kt | 12 ++
.../org/fossify/keyboard/helpers/Constants.kt | 12 ++
.../keyboard/services/SimpleKeyboardIME.kt | 6 +
.../res/xml/keys_letters_english_asset.xml | 188 ++++++++++++++++++
.../res/xml/keys_letters_english_colemak.xml | 188 ++++++++++++++++++
.../xml/keys_letters_english_colemakdh.xml | 188 ++++++++++++++++++
.../res/xml/keys_letters_english_niro.xml | 185 +++++++++++++++++
.../res/xml/keys_letters_english_soul.xml | 188 ++++++++++++++++++
.../res/xml/keys_letters_english_workman.xml | 188 ++++++++++++++++++
9 files changed, 1155 insertions(+)
create mode 100644 app/src/main/res/xml/keys_letters_english_asset.xml
create mode 100644 app/src/main/res/xml/keys_letters_english_colemak.xml
create mode 100644 app/src/main/res/xml/keys_letters_english_colemakdh.xml
create mode 100644 app/src/main/res/xml/keys_letters_english_niro.xml
create mode 100644 app/src/main/res/xml/keys_letters_english_soul.xml
create mode 100644 app/src/main/res/xml/keys_letters_english_workman.xml
diff --git a/app/src/main/kotlin/org/fossify/keyboard/extensions/Context.kt b/app/src/main/kotlin/org/fossify/keyboard/extensions/Context.kt
index 3c74313f..e35433ec 100644
--- a/app/src/main/kotlin/org/fossify/keyboard/extensions/Context.kt
+++ b/app/src/main/kotlin/org/fossify/keyboard/extensions/Context.kt
@@ -49,8 +49,14 @@ import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTY
import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTZ
import org.fossify.keyboard.helpers.LANGUAGE_DANISH
import org.fossify.keyboard.helpers.LANGUAGE_DUTCH
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_ASSET
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAK
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAKDH
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_DVORAK
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_NIRO
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_QWERTZ
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_SOUL
+import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_WORKMAN
import org.fossify.keyboard.helpers.LANGUAGE_ESPERANTO
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_AZERTY
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_BEPO
@@ -292,8 +298,14 @@ fun Context.getKeyboardLanguageText(language: Int): String {
LANGUAGE_CZECH_QWERTZ -> "${getString(R.string.translation_czech)} (QWERTZ)"
LANGUAGE_DANISH -> getString(R.string.translation_danish)
LANGUAGE_DUTCH -> getString(R.string.translation_dutch)
+ LANGUAGE_ENGLISH_ASSET -> "${getString(R.string.translation_english)} (Asset)"
+ LANGUAGE_ENGLISH_COLEMAK -> "${getString(R.string.translation_english)} (Colemak)"
+ LANGUAGE_ENGLISH_COLEMAKDH -> "${getString(R.string.translation_english)} (Colemak-DH)"
LANGUAGE_ENGLISH_DVORAK -> "${getString(R.string.translation_english)} (DVORAK)"
+ LANGUAGE_ENGLISH_NIRO -> "${getString(R.string.translation_english)} (Niro)"
LANGUAGE_ENGLISH_QWERTZ -> "${getString(R.string.translation_english)} (QWERTZ)"
+ LANGUAGE_ENGLISH_SOUL -> "${getString(R.string.translation_english)} (Soul)"
+ LANGUAGE_ENGLISH_WORKMAN -> "${getString(R.string.translation_english)} (Workman)"
LANGUAGE_ESPERANTO -> getString(R.string.translation_esperanto)
LANGUAGE_FRENCH_AZERTY -> "${getString(R.string.translation_french)} (AZERTY)"
LANGUAGE_FRENCH_BEPO -> "${getString(R.string.translation_french)} (BEPO)"
diff --git a/app/src/main/kotlin/org/fossify/keyboard/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/keyboard/helpers/Constants.kt
index abe6b7f5..3aa71601 100644
--- a/app/src/main/kotlin/org/fossify/keyboard/helpers/Constants.kt
+++ b/app/src/main/kotlin/org/fossify/keyboard/helpers/Constants.kt
@@ -66,6 +66,12 @@ const val LANGUAGE_PORTUGUESE_HCESAR = 35
const val LANGUAGE_DUTCH = 36
const val LANGUAGE_LATVIAN = 37
const val LANGUAGE_TURKISH = 38
+const val LANGUAGE_ENGLISH_ASSET = 39
+const val LANGUAGE_ENGLISH_COLEMAK = 40
+const val LANGUAGE_ENGLISH_COLEMAKDH = 41
+const val LANGUAGE_ENGLISH_NIRO = 42
+const val LANGUAGE_ENGLISH_SOUL = 43
+const val LANGUAGE_ENGLISH_WORKMAN = 44
// Keep this sorted
val SUPPORTED_LANGUAGES = listOf(
@@ -82,7 +88,13 @@ val SUPPORTED_LANGUAGES = listOf(
LANGUAGE_DUTCH,
LANGUAGE_ENGLISH_QWERTY,
LANGUAGE_ENGLISH_QWERTZ,
+ LANGUAGE_ENGLISH_ASSET,
+ LANGUAGE_ENGLISH_COLEMAK,
+ LANGUAGE_ENGLISH_COLEMAKDH,
LANGUAGE_ENGLISH_DVORAK,
+ LANGUAGE_ENGLISH_NIRO,
+ LANGUAGE_ENGLISH_SOUL,
+ LANGUAGE_ENGLISH_WORKMAN,
LANGUAGE_ESPERANTO,
LANGUAGE_FRENCH_AZERTY,
LANGUAGE_FRENCH_BEPO,
diff --git a/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt b/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt
index 4c7c5649..de884a3b 100644
--- a/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt
+++ b/app/src/main/kotlin/org/fossify/keyboard/services/SimpleKeyboardIME.kt
@@ -454,8 +454,14 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
LANGUAGE_CZECH_QWERTZ -> R.xml.keys_letters_czech_qwertz
LANGUAGE_DANISH -> R.xml.keys_letters_danish
LANGUAGE_DUTCH -> R.xml.keys_letters_dutch
+ LANGUAGE_ENGLISH_ASSET -> R.xml.keys_letters_english_asset
+ LANGUAGE_ENGLISH_COLEMAK -> R.xml.keys_letters_english_colemak
+ LANGUAGE_ENGLISH_COLEMAKDH -> R.xml.keys_letters_english_colemakdh
LANGUAGE_ENGLISH_DVORAK -> R.xml.keys_letters_english_dvorak
+ LANGUAGE_ENGLISH_NIRO -> R.xml.keys_letters_english_niro
LANGUAGE_ENGLISH_QWERTZ -> R.xml.keys_letters_english_qwertz
+ LANGUAGE_ENGLISH_SOUL -> R.xml.keys_letters_english_soul
+ LANGUAGE_ENGLISH_WORKMAN -> R.xml.keys_letters_english_workman
LANGUAGE_ESPERANTO -> R.xml.keys_letters_esperanto
LANGUAGE_FRENCH_AZERTY -> R.xml.keys_letters_french_azerty
LANGUAGE_FRENCH_BEPO -> R.xml.keys_letters_french_bepo
diff --git a/app/src/main/res/xml/keys_letters_english_asset.xml b/app/src/main/res/xml/keys_letters_english_asset.xml
new file mode 100644
index 00000000..b95c4ec0
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_asset.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_english_colemak.xml b/app/src/main/res/xml/keys_letters_english_colemak.xml
new file mode 100644
index 00000000..21ccf46b
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_colemak.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_english_colemakdh.xml b/app/src/main/res/xml/keys_letters_english_colemakdh.xml
new file mode 100644
index 00000000..7da01f26
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_colemakdh.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_english_niro.xml b/app/src/main/res/xml/keys_letters_english_niro.xml
new file mode 100644
index 00000000..bcb14a96
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_niro.xml
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_english_soul.xml b/app/src/main/res/xml/keys_letters_english_soul.xml
new file mode 100644
index 00000000..22f3301f
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_soul.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_english_workman.xml b/app/src/main/res/xml/keys_letters_english_workman.xml
new file mode 100644
index 00000000..9d660dd4
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_english_workman.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+