diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-02-18 13:15:40 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-02-18 13:15:40 +0300 |
| commit | f40f09390b7ccf365b41fa1cc134432537b50cad (patch) | |
| tree | a3eec3dae4af0405830eb0eac13cac2f2f0cbebb /tui.go | |
| parent | 5548991f5c488032e682fe3a410e747a72c23b90 (diff) | |
Diffstat (limited to 'tui.go')
| -rw-r--r-- | tui.go | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -83,6 +83,7 @@ var ( [yellow]Ctrl+l[white]: show model selection popup to choose current model [yellow]Ctrl+k[white]: switch tool use (recommend tool use to llm after user msg) [yellow]Ctrl+a[white]: interrupt tts (needs tts server) +[yellow]Alt+0[white]: replay last message via tts (needs tts server) [yellow]Ctrl+g[white]: open RAG file manager (load files for context retrieval) [yellow]Ctrl+y[white]: list loaded RAG files (view and manage loaded files) [yellow]Ctrl+q[white]: show user role selection popup to choose who sends next msg as @@ -1144,6 +1145,18 @@ func init() { if event.Key() == tcell.KeyCtrlA && cfg.TTS_ENABLED { TTSDoneChan <- true } + if event.Key() == tcell.KeyRune && event.Rune() == '0' && event.Modifiers()&tcell.ModAlt != 0 && cfg.TTS_ENABLED { + if len(chatBody.Messages) > 0 { + // Stop any currently playing TTS first + TTSDoneChan <- true + lastMsg := chatBody.Messages[len(chatBody.Messages)-1] + cleanedText := models.CleanText(lastMsg.Content) + if cleanedText != "" { + go orator.Speak(cleanedText) + } + } + return nil + } if event.Key() == tcell.KeyCtrlW { // INFO: continue bot/text message // without new role |
