diff --git a/resources/qml/dialogs/JoinRoomDialog.qml b/resources/qml/dialogs/JoinRoomDialog.qml
index 25400e4057ba207dbc9e53bb72b37be392806247..2554215d4231b801219ae0dff4cb40de4a023e29 100644
--- a/resources/qml/dialogs/JoinRoomDialog.qml
+++ b/resources/qml/dialogs/JoinRoomDialog.qml
@@ -20,6 +20,19 @@ ApplicationWindow {
     width: 350
     height: fontMetrics.lineSpacing * 7
 
+    Shortcut {
+        sequence: "Return"
+        onActivated: {
+            if (input.text.match("#.+?:.{3,}"))
+                dbb.accepted();
+        }
+    }
+
+    Shortcut {
+        sequence: StandardKey.Cancel
+        onActivated: dbb.rejected()
+    }
+
     ColumnLayout {
         spacing: Nheko.paddingMedium
         anchors.margins: Nheko.paddingMedium
@@ -41,6 +54,8 @@ ApplicationWindow {
     }
 
     footer: DialogButtonBox {
+        id: dbb
+
         onAccepted: {
             Nheko.joinRoom(input.text);
             joinRoomRoot.close();