PaneDirection
Where a split puts the pane it creates.
Source and package
- Qualified name
-
PaneDirection - Package
- libtmux-swift
- Source
- Sources/LibTmux/Creation.swift
- enum PaneDirection : enum Pane
Direction -
Description#
Named for where the new pane ends up, not for the axis it divides:
.leftand.rightboth split side by side, and which one you get is the whole question a caller has. tmux spells the other two as one flag and a modifier, which is why "vertical" alone cannot say whether the pane appears above or below.Examples#
Split a specific pane. Split the fixture's pane to the right and give the new pane 40 percent of its width. Address the pane itself so a different active pane cannot change the target. Use Swift 6.2 or newer and tmux 3.3a or newer on Linux or macOS. In an empty directory, save this consumer package as
Package.swift; SwiftPM fetches the library from release 0.1.1:// swift-tools-version: 6.2import PackageDescriptionlet package = Package(name: "ApiExample",platforms: [.macOS(.v13)],dependencies: [.package(url: "https://github.com/libtmux/libtmux-swift.git", from: "0.1.1")],targets: [.executableTarget(name: "ApiExample",dependencies: [.product(name: "LibTmux", package: "libtmux-swift"),.product(name: "TmuxFixture", package: "libtmux-swift"),],path: "Sources")])Create a
Sourcesdirectory and save this complete program asSources/Example.swift. ThewithTmuxServerfixture owns a private tmux server and stops it after success or failure. Ordinary application code usesServerfor its own socket; these examples use the fixture until their setup moves to ordinary server objects. View sourceimport Foundationimport LibTmuximport TmuxFixture@mainstruct ApiSplitPane {static func main() async {do {try await withTmuxServer { @Sendable server inguard let original = try await server.panes().first else {throw ExampleError.paneMissing}let created = try await server.split(original,direction: .right,size: .percentage(40))let panes = try await server.panes().filter { $0.windowID == original.windowID }print("Panes in window: \(panes.count)")print("Same window: \(created.windowID == original.windowID)")}} catch {FileHandle.standardError.write(Data("Example failed: \(error)\n".utf8))exit(EXIT_FAILURE)}}enum ExampleError: Error {case paneMissing}}Build and run the saved program. An operation or cleanup error produces a failing exit status. Set
LIBTMUX_TMUX_BINto an absolute executable path to select a tmux version:Terminal window $ swift run ApiExampleExpected output:
Panes in window: 2Same window: true
Members4#
- above: case above constant Stacked over the existing pane.
split-window -v -b. - below: case below constant Stacked under the existing pane, which is tmux's own default.
- left: case left constant Beside the existing pane, on its left.
split-window -h -b. - right: case right constant Beside the existing pane, on its right.
split-window -h.
Inherited members2 members#
Reached through Equatable.!=(_:_:), Decodable.init(from:).
- !=(_:_:) function inherited Returns a Boolean value indicating whether two values are not equal.
- init(from:) method inherited Creates a new instance by decoding from the given decoder.