diff --git a/resources/qml/TopBar.qml b/resources/qml/TopBar.qml
index 716a5e105690f117fa57d95d7b675ff64be8661a..4608da4ddff3adeed41df00502d2e675300d11bb 100644
--- a/resources/qml/TopBar.qml
+++ b/resources/qml/TopBar.qml
@@ -33,6 +33,11 @@ Pane {
         searchField.text = ""
     }
 
+    Shortcut {
+        sequence: StandardKey.Find
+        onActivated: searchButton.searchActive = !searchButton.searchActive
+    }
+
     Layout.fillWidth: true
     implicitHeight: topLayout.height + Nheko.paddingMedium * 2
     z: 3
@@ -268,8 +273,9 @@ Pane {
                 image: ":/icons/icons/ui/search.svg"
                 ToolTip.visible: hovered
                 ToolTip.text: qsTr("Search this room")
-                onClicked: {
-                    searchActive = !searchActive
+                onClicked: searchActive = !searchActive
+
+                onSearchActiveChanged: {
                     if (searchActive) {
                         searchField.forceActiveFocus();
                     }