commit fc42d9e08bafb8006d3865288017eb4a8327a89b
parent 6d4fdf32806493504389e84478b338b271c45537
Author: Andrew Laack <andrew@laack.co>
Date: Wed, 6 May 2026 22:17:30 -0500
starting with navigation
Diffstat:
| M | main.go | | | 45 | ++++++++++++++++++++++++++++++++++++++------- |
1 file changed, 38 insertions(+), 7 deletions(-)
diff --git a/main.go b/main.go
@@ -31,16 +31,47 @@ func main(){
textView := tview.NewTextView()
textView.SetBackgroundColor(tcell.ColorDefault)
textView.SetText(text)
+ lowerTextView := tview.NewTextView()
+ screen := tview.NewFlex().SetDirection(tview.FlexRow).AddItem(textView, 0,1,true).AddItem(lowerTextView,1,0,false)
selectionMode := false
textView.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
- switch event.Rune() {
- case ' ':
- selectionMode = !selectionMode
+
+ switch event.Rune() {
+ case ' ':
+ selectionMode = !selectionMode
+ go func() {
+ app.QueueUpdateDraw(func() {
+ if selectionMode {
+ lowerTextView.SetText("Select Link To Follow: ")
+ } else{
+ lowerTextView.SetText("")
+ }
+ })
+
+ }()
+
+ return nil
case '1', '2','3','4','5','6','7','8','9','0':
+ if selectionMode {
+ go func() {
+ app.QueueUpdateDraw(func() {
+ currentText := lowerTextView.GetText(false)
+ currentText = currentText + string(event.Rune())
+ lowerTextView.SetText(currentText)
+ })
+
+ }()
+ }
+
+ }
+
+ switch event.Key() {
+ case tcell.KeyEnter:
if selectionMode {
selectionMode = false
+ go func() {
client := &gemini.Client{ConnectTimeout: 5 * time.Second}
resp, err := client.Fetch("gemini://blog.laack.co")
@@ -60,18 +91,18 @@ func main(){
app.QueueUpdateDraw(func() {
textView.SetText(textNew)
})
+ }()
return nil
}
}
- return event
- })
-
+ return event
+ })
- if err := app.SetRoot(textView, true).SetFocus(textView).Run(); err != nil {
+ if err := app.SetRoot(screen, true).SetFocus(textView).Run(); err != nil {
panic(err)
}