diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1aceb2ea1..3f49067c3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,7 +23,7 @@ Emojis for the following are chosen based on [gitmoji](https://gitmoji.dev/).
### ⌨️ Keyboards
-- Keyboards for English, French, German, Italian, Portuguese, Russian, Spanish and Swedish.
+- Keyboards for English, French, German, Greek, Italian, Portuguese, Russian, Spanish and Swedish.
- Keyboards can easily be individually installed based on the language the user speaks ([#15](https://github.com/scribe-org/Scribe-Android/issues/15)).
### ✨ New Features
diff --git a/app/src/keyboards/AndroidManifest.xml b/app/src/keyboards/AndroidManifest.xml
index 1fa972448..7047da2c4 100644
--- a/app/src/keyboards/AndroidManifest.xml
+++ b/app/src/keyboards/AndroidManifest.xml
@@ -41,6 +41,19 @@
android:name="android.view.im"
android:resource="@xml/method_german" />
+
+
+
+
+
+
+
R.xml.keys_letters_greek_tablet
+ isPeriodAndCommaEnabled() -> R.xml.keys_letters_greek
+ else -> R.xml.keys_letters_greek_without_period_and_comma
+ }
+
+ override val defaultConjugateModeType: String = "2x2"
+ override val defaultConjugateLayoutXML: Int = R.xml.conjugate_view_2x2
+
+ override val keyboardLetters: Int = 0
+ override val keyboardSymbols: Int = 1
+ override val keyboardSymbolShift: Int = 2
+
+ override var lastShiftPressTS: Long = 0L
+ override var keyboardMode: Int = keyboardLetters
+ override var inputTypeClass: Int = InputType.TYPE_CLASS_TEXT
+ override var enterKeyType: Int = IME_ACTION_NONE
+ override var switchToLetters: Boolean = false
+
+ private val keyHandler by lazy { KeyHandler(this) }
+
+ override fun onKey(code: Int) {
+ keyHandler.handleKey(code, language)
+ }
+}
diff --git a/app/src/main/java/be/scri/models/ScribeLanguage.kt b/app/src/main/java/be/scri/models/ScribeLanguage.kt
index 448181a78..939f40fbc 100644
--- a/app/src/main/java/be/scri/models/ScribeLanguage.kt
+++ b/app/src/main/java/be/scri/models/ScribeLanguage.kt
@@ -15,6 +15,7 @@ enum class ScribeLanguage(
ENGLISH("English", "EN"),
FRENCH("French", "FR"),
GERMAN("German", "DE"),
+ GREEK("Greek", "EL"),
ITALIAN("Italian", "IT"),
PORTUGUESE("Portuguese", "PT"),
RUSSIAN("Russian", "RU"),
diff --git a/app/src/main/res/xml/keys_letters_greek.xml b/app/src/main/res/xml/keys_letters_greek.xml
new file mode 100644
index 000000000..ff6355997
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_greek.xml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_greek_tablet.xml b/app/src/main/res/xml/keys_letters_greek_tablet.xml
new file mode 100644
index 000000000..d38b93f78
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_greek_tablet.xml
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml b/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml
new file mode 100644
index 000000000..0cc416b05
--- /dev/null
+++ b/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/method_greek.xml b/app/src/main/res/xml/method_greek.xml
new file mode 100644
index 000000000..e364213f9
--- /dev/null
+++ b/app/src/main/res/xml/method_greek.xml
@@ -0,0 +1,8 @@
+
+
+