# tmux.Pane.DisplayPopup

- **Module:** tmux.Pane
- **Package:** github.com/libtmux/libtmux-go/tmux
- **Language:** Go
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-go/blob/52968a3181c1c9e6d1b26c565d4b170968ae61c0/tmux/pane_popup.go#L137
- **Page:** https://libtmux.org/en/go/latest/reference/tmux-pane-displaypopup/

```
tmux.Pane.DisplayPopup(ctx: context.Context, request: DisplayPopupRequest) -> error
```

DisplayPopup displays an overlay on the selected client and waits until it closes after command exit or user dismissal. A zero request starts tmux's default command or default shell and may wait indefinitely. The API exposes no popup process handle, stdout, or child exit status.

The command carries the receiver's exact linked session-window-pane target,
which supplies format and working-directory context. TargetClient selects
the overlay client; it does not turn the operation into pane delivery. tmux
interprets Command as a shell command; outer-parser escaping does not quote
or neutralize that inner command.

Title, BorderLines, Style, BorderStyle, Environment, and NoBorder require
tmux 3.3. CloseOnAnyKey and NoKeys require tmux 3.6. Unsupported fields follow
[UnsupportedPolicy]. On tmux 3.8 and later, an explicit TargetClient that
resolves to a control-mode client returns [ErrInvalidServerCommandRequest]
unless CloseExisting is set: tmux itself answers that combination exactly
as it answers success, so nothing on the wire would otherwise say the
popup never ran. CloseExisting is exempt because tmux handles it before
that refusal on every version, clearing whatever overlay the target has -
nothing, for a control-mode client - without creating anything either way.

Invalid fields fail before display. Only stderr produces a redacted
[CommandError]; nonzero exits without stderr are ignored. Cancellation cannot
dismiss an accepted popup, which may remain visible.
