From af8fe918d863b18160390a79cbf957ee28dead56 Mon Sep 17 00:00:00 2001 From: Pierre Guinoiseau Date: Fri, 18 Apr 2025 20:35:48 +1200 Subject: [PATCH] Disable tmux popup when already running inside one (#4351) --- src/core.go | 2 +- src/proxy.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core.go b/src/core.go index 42add205..aaa444b2 100644 --- a/src/core.go +++ b/src/core.go @@ -39,7 +39,7 @@ func (r revision) compatible(other revision) bool { // Run starts fzf func Run(opts *Options) (int, error) { if opts.Filter == nil { - if opts.Tmux != nil && len(os.Getenv("TMUX")) > 0 && opts.Tmux.index >= opts.Height.index { + if opts.Tmux != nil && len(os.Getenv("TMUX")) > 0 && len(os.Getenv("TMUX_PANE")) > 0 && opts.Tmux.index >= opts.Height.index { return runTmux(os.Args, opts) } diff --git a/src/proxy.go b/src/proxy.go index 53a3c265..daeb680b 100644 --- a/src/proxy.go +++ b/src/proxy.go @@ -98,7 +98,8 @@ func runProxy(commandPrefix string, cmdBuilder func(temp string, needBash bool) validIdentifier := regexp.MustCompile(`^[a-zA-Z_][a-zA-Z0-9_]*$`) for _, pairStr := range os.Environ() { pair := strings.SplitN(pairStr, "=", 2) - if validIdentifier.MatchString(pair[0]) { + // TMUX_PANE is never set inside a tmux popup, and should not be set so as to not be detected as a regular tmux pane + if validIdentifier.MatchString(pair[0]) && pair[0] != "TMUX_PANE" { exports = append(exports, fmt.Sprintf("export %s=%s", pair[0], escapeSingleQuote(pair[1]))) } else if strings.HasPrefix(pair[0], "BASH_FUNC_") && strings.HasSuffix(pair[0], "%%") { name := pair[0][10 : len(pair[0])-2]