diff --git a/tools/tty/tty.go b/tools/tty/tty.go index 3c691a468..ca0cdd374 100644 --- a/tools/tty/tty.go +++ b/tools/tty/tty.go @@ -340,16 +340,22 @@ func (self *Term) GetSize() (*unix.Winsize, error) { // go doesn't have a wrapper for ctermid() func Ctermid() string { return "/dev/tty" } -func DebugPrintln(a ...any) { +var KittyStdout = utils.Once(func() *os.File { if fds := os.Getenv(`KITTY_STDIO_FORWARDED`); fds != "" { if fd, err := strconv.Atoi(fds); err == nil && fd > -1 { if f := os.NewFile(uintptr(fd), ""); f != nil { - fmt.Fprintln(f, a...) - f.Close() - return + return f } } } + return nil +}) + +func DebugPrintln(a ...any) { + if f := KittyStdout(); f != nil { + fmt.Fprintln(f, a...) + return + } term, err := OpenControllingTerm() if err == nil { defer term.Close()