fix: lazysecrets starts from fzf's become, on a non-blocking terminal #67

Merged
keb merged 1 commits from fix/fzf-become-stdin into main 2026-10-14 21:22:19 +02:00
3 changed files with 26 additions and 0 deletions
Showing only changes of commit 009747ae6f - Show all commits

No files matched your search

+1
View File
@@ -436,6 +436,7 @@ Flags:
Styles: &theme,
DefaultFg: defaultFg,
})
blockingStdin()
p = tea.NewProgram(m)
final, err := p.Run()
if fm, ok := final.(app.Model); ok {
+5
View File
@@ -0,0 +1,5 @@
//go:build !unix
package main
func blockingStdin() {}
+20
View File
@@ -0,0 +1,20 @@
//go:build unix
package main
import (
"os"
"syscall"
"golang.org/x/term"
)
// blockingStdin makes a terminal on stdin blocking again. fzf's become
// hands on its /dev/tty non-blocking; Go can't poll /dev/tty on macOS,
// so it reads it directly, and the TUI's first read would fail with
// EAGAIN ("resource temporarily unavailable").
func blockingStdin() {
if fd := int(os.Stdin.Fd()); term.IsTerminal(fd) {
_ = syscall.SetNonblock(fd, false)
}
}