diff --git a/app/src/main/assets/layouts/functional/functional_keys_kalq.json b/app/src/main/assets/layouts/functional/functional_keys_kalq.json
new file mode 100644
index 0000000000..41b42e677b
--- /dev/null
+++ b/app/src/main/assets/layouts/functional/functional_keys_kalq.json
@@ -0,0 +1,3 @@
+[
+
+]
diff --git a/app/src/main/assets/layouts/main/kalq.json b/app/src/main/assets/layouts/main/kalq.json
new file mode 100644
index 0000000000..cdf425bd8d
--- /dev/null
+++ b/app/src/main/assets/layouts/main/kalq.json
@@ -0,0 +1,52 @@
+[
+ [
+ { "label": "m", "width": 0.12 },
+ { "label": "b", "width": 0.12 },
+ { "label": "w", "width": 0.12 },
+ { "label": "h", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "g", "width": 0.12 },
+ { "label": "t", "width": 0.12 },
+ { "label": "o", "width": 0.12 },
+ { "label": "j", "width": 0.12 }
+ ],
+ [
+ { "label": "p", "width": 0.12 },
+ { "label": "space", "width": 0.12 },
+ { "label": "x", "width": 0.12 },
+ { "label": "c", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "i", "width": 0.12 },
+ { "label": "e", "width": 0.12 },
+ { "label": "space", "width": 0.12 },
+ { "label": "u", "width": 0.12 }
+ ],
+ [
+ { "label": "r", "width": 0.12 },
+ { "label": "y", "width": 0.12 },
+ { "label": "s", "width": 0.12 },
+ { "label": "z", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "k", "width": 0.12 },
+ { "label": "a", "width": 0.12 },
+ { "label": "l", "width": 0.12 },
+ { "label": "q", "width": 0.12 }
+ ],
+ [
+ { "label": "d", "width": 0.12 },
+ { "label": "n", "width": 0.12 },
+ { "label": "f", "width": 0.12 },
+ { "label": "v", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "delete", "groupId": -1, "width": 0.24 },
+ { "label": "action", "width": 0.24 }
+ ],
+ [
+ { "label": "shift", "width": 0.24 },
+ { "label": "language_switch", "width": 0.12 },
+ { "label": "◁", "code": -10040, "width": 0.12},
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "symbol_alpha", "width": 0.24 },
+ { "label": "shift", "width": 0.24 }
+ ]
+]
diff --git a/app/src/main/assets/layouts/number_row/number_row_kalq.json b/app/src/main/assets/layouts/number_row/number_row_kalq.json
new file mode 100644
index 0000000000..454338bec1
--- /dev/null
+++ b/app/src/main/assets/layouts/number_row/number_row_kalq.json
@@ -0,0 +1,13 @@
+[
+ [
+ { "label": "(", "width": 0.12 },
+ { "label": ")", "width": 0.12 },
+ { "label": "1", "width": 0.12 },
+ { "label": "2", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "3", "width": 0.12 },
+ { "label": "+", "width": 0.12 },
+ { "label": "&", "width": 0.12 },
+ { "label": "?", "width": 0.12 }
+ ]
+]
diff --git a/app/src/main/assets/layouts/symbols/symbols_kalq.json b/app/src/main/assets/layouts/symbols/symbols_kalq.json
new file mode 100644
index 0000000000..1170496755
--- /dev/null
+++ b/app/src/main/assets/layouts/symbols/symbols_kalq.json
@@ -0,0 +1,56 @@
+[
+ [
+ { "label": "(", "width": 0.12 },
+ { "label": ")", "width": 0.12 },
+ { "label": "1", "width": 0.12 },
+ { "label": "2", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "3", "width": 0.12 },
+ { "label": "+", "width": 0.12 },
+ { "label": "&", "width": 0.12 },
+ { "label": "?", "width": 0.12 }
+ ],
+ [
+ { "label": "@", "width": 0.12 },
+ { "label": "#", "width": 0.12 },
+ { "label": "4", "width": 0.12 },
+ { "label": "5", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "6", "width": 0.12 },
+ { "label": "-", "width": 0.12 },
+ { "label": "_", "width": 0.12 },
+ { "label": "!", "width": 0.12 }
+ ],
+ [
+ { "label": ",", "width": 0.12 },
+ { "label": "%", "width": 0.12 },
+ { "label": "7", "width": 0.12 },
+ { "label": "8", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "9", "width": 0.12 },
+ { "label": "*", "width": 0.12 },
+ { "label": "\"", "width": 0.12 },
+ { "label": "'", "width": 0.12 }
+ ],
+ [
+ { "label": ".", "width": 0.12 },
+ { "label": "$", "width": 0.12 },
+ { "label": "/", "width": 0.12 },
+ { "label": "0", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "=", "width": 0.12 },
+ { "label": "\\", "width": 0.12 },
+ { "label": ";", "width": 0.12 },
+ { "label": ":", "width": 0.12 }
+ ],
+ [
+ { "label": "~", "width": 0.12 },
+ { "label": "|", "width": 0.12 },
+ { "label": "<", "width": 0.12 },
+ { "label": ">", "width": 0.12 },
+ { "type": "placeholder", "width": 0.005 },
+ { "label": "symbol_alpha", "width": 0.24 },
+ { "label": "[", "width": 0.12 },
+ { "label": "]", "width": 0.12 }
+ ]
+]
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f19ab7da7a..f0f9e8a5ec 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -915,4 +915,5 @@ New dictionary:
Custom subtype
Landscape
+ English (US, KALQ)
diff --git a/app/src/main/res/xml/method.xml b/app/src/main/res/xml/method.xml
index 69994344c6..bcb7edf065 100644
--- a/app/src/main/res/xml/method.xml
+++ b/app/src/main/res/xml/method.xml
@@ -168,6 +168,15 @@
android:imeSubtypeExtraValue="TrySuppressingImeSwitcher,AsciiCapable,SupportTouchPositionCorrection,EmojiCapable"
android:isAsciiCapable="true"
/>
+