diff --git a/applets/kickoff/package/contents/ui/FullRepresentation.qml b/applets/kickoff/package/contents/ui/FullRepresentation.qml --- a/applets/kickoff/package/contents/ui/FullRepresentation.qml +++ b/applets/kickoff/package/contents/ui/FullRepresentation.qml @@ -608,6 +608,51 @@ } } + // emacs/bash style keybindings + if (Qt.ControlModifier) { + switch(event.key) { + case Qt.Key_N: { + currentView.incrementCurrentIndex(); + event.accepted = true; + return; + } + case Qt.Key_P: { + currentView.decrementCurrentIndex(); + event.accepted = true; + return; + } + case Qt.Key_H: { + header.query = header.query.slice(0, -1); + event.accepted = true; + return; + } + case Qt.Key_E: { + header.input.cursorPosition = header.query.length; + event.accepted = true; + return; + } + case Qt.Key_F: { + header.input.cursorPosition += 1; + event.accepted = true; + return; + } + case Qt.Key_B: { + header.input.cursorPosition -= 1; + event.accepted = true; + return; + } + case Qt.Key_BracketLeft: { + if (header.state != "query") { + plasmoid.expanded = false; + } else { + header.query = ""; + } + event.accepted = true; + return; + } + } + } + switch(event.key) { case Qt.Key_Up: { currentView.decrementCurrentIndex();