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.

struct libtmux-swift latest

WindowAppearance

One window and one session-local appearance, read from the same tmux reply.

Source and package
Qualified name
WindowAppearance
Package
libtmux-swift
Source
Sources/LibTmux/Window.swift
struct WindowAppearance : struct WindowAppearance

Description#

Both properties are snapshots from one instant. Window.id identifies the global window for its lifetime, while WindowLink.id identifies this appearance only until tmux removes or reindexes the link.

Examples#

Create a window at an explicit index. Create a logs window at index 3. newWindow returns a WindowAppearance containing the global window and its session-local WindowLink. An occupied index fails instead of silently replacing another window. 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.2
import PackageDescription
let 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 Sources directory and save this complete program as Sources/Example.swift. The withTmuxServer fixture owns a private tmux server and stops it after success or failure. Ordinary application code uses Server for its own socket; these examples use the fixture until their setup moves to ordinary server objects. View source

import Foundation
import LibTmux
import TmuxFixture
@main
struct ApiNewWindow {
static func main() async {
do {
try await withTmuxServer { @Sendable server in
let session = try await server.newSession(named: "work", windowName: "editor")
let appearance = try await server.newWindow(in: session, named: "logs", at: 3)
print("Window: \(appearance.window.name)")
print("Index: \(appearance.link.index)")
print("Same session: \(appearance.link.sessionID == session.id)")
}
} catch {
FileHandle.standardError.write(Data("Example failed: \(error)\n".utf8))
exit(EXIT_FAILURE)
}
}
}

Build and run the saved program. An operation or cleanup error produces a failing exit status. Set LIBTMUX_TMUX_BIN to an absolute executable path to select a tmux version:

Terminal window
$ swift run ApiExample

Expected output:

Window: logs
Index: 3
Same session: true

Members2#

Parent objects1#

Other members1#

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.
Esc

Type to search.

Reference previewOpen reference