# control.ControlSender.unmute_pane

- **Module:** control.ControlSender
- **Package:** libtmux
- **Language:** Rust
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-rs/blob/f0e37052c232636b61d095817046e6bfc8f2ca40/crates/libtmux/src/control.rs#L898
- **Page:** https://libtmux.org/en/rs/latest/reference/control-controlsender-unmute_pane/

```
control.ControlSender.unmute_pane(self, pane: &PaneId) -> Result<(), Error>
```

Resume sending what a pane writes, after [`Self::mute_pane`].

Below [`crate::since::CONTROL_PANE_OFF`], [`Self::mute_pane`] paused the
pane rather than taking it out of the stream, and this continues it:
tmux resumes from the pane's current output rather than replaying what
was skipped, so the caller sees a gap, not a backlog.

At or above that release, [`Self::mute_pane`] took the pane out of the
stream instead, which also stopped tmux reading its pty; this turns
that back on, and everything written while muted arrives at once, as a
backlog rather than a gap.

This sends both tmux commands in one dispatch rather than choosing
between them, so it is exactly [`Self::resume_pane`] -- either name
undoes [`Self::mute_pane`] correctly regardless of which mechanism the
running tmux used.

# Errors

Returns an error when the connection has closed or tmux refuses the
stream change.
