diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
index 2beb67c10a44d59919b8592a6c30e67ab6d44721..d23eed62b8839affa5bd919839c40c3409e70bfd 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/input/Editor.kt
@@ -334,6 +334,19 @@ class Editor(
     }
     TooltipCompat.setTooltipText(clearButton, clearButton.contentDescription)
 
+    chatline.setOnEditorActionListener { _, actionId, event ->
+      if (event.action == KeyEvent.ACTION_DOWN) {
+        when (actionId) {
+          EditorInfo.IME_ACTION_SEND,
+          EditorInfo.IME_ACTION_DONE -> {
+            send()
+            true
+          }
+          else                       -> false
+        }
+      } else false
+    }
+
     chatline.setOnKeyListener { _, keyCode, event ->
       if (event.action == KeyEvent.ACTION_DOWN) {
         if (event.isCtrlPressed && !event.isAltPressed) when (keyCode) {
@@ -371,7 +384,11 @@ class Editor(
           }
           else                          -> false
         }
-      } else false
+      } else if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER) {
+        !event.isShiftPressed
+      } else {
+        false
+      }
     }
   }