diff options
Diffstat (limited to 'desktop/assistant/Card.qml')
| -rw-r--r-- | desktop/assistant/Card.qml | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/desktop/assistant/Card.qml b/desktop/assistant/Card.qml index 4c76e64..d8826fa 100644 --- a/desktop/assistant/Card.qml +++ b/desktop/assistant/Card.qml @@ -431,10 +431,30 @@ Rectangle { } } + // nf-fa-microphone, checked in Inconsolata Nerd Font. Every state, + // entry included: SUPER+Home opens the card and the mic is one click away. + Button { + id: mic + anchors { bottom: parent.bottom; left: attach.right; leftMargin: attach.visible ? 8 : 0 } + height: box.height + icon: "" + text: card.canvas.recording + ? `${Math.floor(card.canvas.micSecs / 60)}:${String(card.canvas.micSecs % 60).padStart(2, "0")}` + : "" + danger: card.canvas.recording + enabled: card.canvas.connected && (card.canvas.recording + || (!card.canvas.busy && !card.canvas.opRunning && !card.canvas.blocked)) + onClicked: { + if (card.canvas.recording) card.canvas.endRecording(true); + else card.canvas.record(); + input.forceActiveFocus(); + } + } + Rectangle { id: box anchors { - bottom: parent.bottom; left: attach.right; leftMargin: attach.visible ? 8 : 0 + bottom: parent.bottom; left: mic.right; leftMargin: 8 right: history.left; rightMargin: 8 } // Grows with the text up to six lines, then scrolls. @@ -483,6 +503,8 @@ Rectangle { visible: input.text === "" elide: Text.ElideRight text: !card.canvas.connected ? "assistant not running" + : card.canvas.recording ? "Listening… click the mic to send" + : card.canvas.state === "transcribing" ? "Transcribing…" : card.mode === "entry" ? "How can I help you?" : card.canvas.staged.length ? `Ask about ${card.canvas.staged[0].name}…` : "Message the assistant" |
