libtmux Reference MCP Search
On this page

window.Window.rotate

View as Markdown

Module
window
Declared in
Window
Package
libtmux
Source
crates/libtmux/src/window.rs
rotate ( self , rotation : Rotation ) Result<(), Error>
method [source]
method [source]
rotate

Move the window's panes round one position, keeping the layout.

The panes swap places within the arrangement rather than the arrangement changing, so a rotation of a three-pane window three times returns it to where it started.

Errors

Returns an error when tmux cannot be reached or refuses the rotation.

Examples

use libtmux::{Rotation, SplitDirection, SplitOptions};

let guard = libtmux::test::TestServer::new().await?;
let session = guard.server().new_session("turning").await?;
let mut window = session.active_window().await?.expect("a window");
window.split(SplitOptions::new(SplitDirection::Below)).await?;

let before: Vec<_> = window.panes().await?.iter().map(|p| p.id().clone()).collect();
window.rotate(Rotation::Up).await?;
let after: Vec<_> = window.panes().await?.iter().map(|p| p.id().clone()).collect();

assert_ne!(before, after, "the panes moved");
window.rotate(Rotation::Down).await?;
let back: Vec<_> = window.panes().await?.iter().map(|p| p.id().clone()).collect();
assert_eq!(before, back, "and the other way undoes it");

guard.shutdown().await?;

0 declared, 0 inherited

Esc

Type to search.