Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

method libtmux latest

Pane.split

Split window and return Pane, by default beneath current pane.

Source and package
Qualified name
libtmux.Pane.split
Module
libtmux
Declared in
Pane
Package
libtmux
Source
src/libtmux/pane.py
Other languages
Perlmethod Erlang PowerShell Julia Elixir Haskell Common Lisp RubyLuaTypeScriptRustGoJavaC# C++ SwiftKotlinScalaOCaml F# Clojure
split
( 17 parameters ) ( self, target: int | str | None = None, start_directory: StrPath | None = None, attach: bool = False, direction: PaneDirection | None = None, full_window_split: bool | None = None, zoom: bool | None = None, shell: str | None = None, size: str | int | None = None, percentage: int | None = None, environment: dict[str, str] | None = None, empty: bool | None = None, style: str | None = None, active_border_style: str | None = None, inactive_border_style: str | None = None, message: str | None = None, keep: bool | None = None, )
→ Pane

Examples#

>>> (pane.at_left, pane.at_right,
... pane.at_top, pane.at_bottom)
(True, True,
True, True)
>>> new_pane = pane.split()
>>> (new_pane.at_left, new_pane.at_right,
... new_pane.at_top, new_pane.at_bottom)
(True, True,
False, True)
>>> right_pane = pane.split(direction=PaneDirection.Right)
>>> (right_pane.at_left, right_pane.at_right,
... right_pane.at_top, right_pane.at_bottom)
(False, True,
True, False)
>>> left_pane = pane.split(direction=PaneDirection.Left)
>>> (left_pane.at_left, left_pane.at_right,
... left_pane.at_top, left_pane.at_bottom)
(True, False,
True, False)
>>> top_pane = pane.split(direction=PaneDirection.Above)
>>> (top_pane.at_left, top_pane.at_right,
... top_pane.at_top, top_pane.at_bottom)
(False, False,
True, False)
>>> pane = session.new_window().active_pane
>>> top_pane = pane.split(direction=PaneDirection.Above, full_window_split=True)
>>> (top_pane.at_left, top_pane.at_right,
... top_pane.at_top, top_pane.at_bottom)
(True, True,
True, False)
>>> bottom_pane = pane.split(
... direction=PaneDirection.Below,
... full_window_split=True)
>>> (bottom_pane.at_left, bottom_pane.at_right,
... bottom_pane.at_top, bottom_pane.at_bottom)
(True, True,
False, True)
Parameters
  • target (int | str | None) # – Optional, custom target-pane, used by Window.split().

  • start_directory (StrPath | None) # – specifies the working directory in which the new window is created.

  • attach (bool) # – make new window the current window after creating it, default True.

  • direction (PaneDirection | None) # – split in direction. If none is specified, assume down.

  • full_window_split (bool | None) # – split across full window width or height, rather than active pane.

  • zoom (bool | None) # – expand pane

  • shell (str | None) # – execute a command on splitting the window. The pane will close when the command exits. NOTE: When this command exits the pane will close. This feature is useful for long-running processes where the closing of the window upon completion is desired.

  • size (str | int | None) # – Cell/row count to occupy with respect to current window.

  • percentage (int | None) # – Percentage (0-100) of the window to occupy (-p flag). Mutually exclusive with size. added 0.56

  • environment (dict[str, str] | None) # – Environmental variables for new pane. Passthrough to -e.

  • empty (bool | None) # – Create an empty pane with no command (-E flag) instead of spawning the default shell. Requires tmux 3.7+. If used with tmux < 3.7, a warning is issued and the flag is ignored.

  • style (str | None) # – Style for the new pane (-s). Requires tmux 3.7+.

  • active_border_style (str | None) # – Active-pane border style (-S). Requires tmux 3.7+.

  • inactive_border_style (str | None) # – Inactive-pane border style (-R). Requires tmux 3.7+.

  • message (str | None) # – Keep the pane open (until a key is pressed) after exit, showing this remain-on-exit-format message (-m). Requires tmux 3.7+.

  • keep (bool | None) # – Keep the pane open until a key is pressed after exit (-k). Requires tmux 3.7+. These 3.7 flags warn and are ignored below 3.7.

tmux command#

The tmux commands behind split.

tmux C API#

The C declarations in tmux that implement these commands.

Each path starts at a function a command runs, which is degree 1. The degree counts steps from there along the path, and each step is a call or a reference: degree 2 is reached from that function, degree 3 from the next, and so on.

Split a window

  1. 1 cmd_split_window_exec
  2. references → 2 spawn_pane
  3. calls → 3 window_add_pane
  4. calls → 4 window_pane_create

In other ports#

Split a pane in two

Equivalents of Split a pane in two in other languages
Language Equivalent
Ruby LibTmux::Pane#split
Lua libtmux.Pane:split
Erlang tmux_pane:split/2
Haskell No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing.
TypeScript pane.Pane.split
Rust pane.Pane.split
Go tmux.Pane.Split
Java io.github.libtmux.Pane.split
Clojure libtmux.core/split-pane!
Kotlin io.github.libtmux.kotlin.Pane.split
Scala io.github.libtmux.scaladsl.Pane.split
C# LibTmux.Pane.SplitAsync
C++ no direct pane target; Window.split splits the active pane
Swift Server.split(_:direction:size:startDirectory:environment:shell:)
OCaml Libtmux_unix.Client.split_pane
Perl LibTmux::Server::split_pane Explicit Server operation. Captured entities remain local observations; use a new snapshot to observe changes.

No equivalent is recorded in PowerShell, Julia, Elixir, Common Lisp or F#.

Esc

Type to search.

Reference previewOpen reference