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

Window

One tmux window, independent of every session that links it.

Source and package
Qualified name
Window
Package
libtmux-swift
Source
Sources/LibTmux/Window.swift
Other languages
Perlclass Erlangstruct PowerShellcmdlet Juliastruct Elixirstruct Haskell Common Lispclass PythonRubyLuaTypeScriptRustGoJavaC#C++KotlinScalaOCamltypealias F#module Clojurefunction
struct Window : struct Window

Examples#

List windows across the server. Create editor and logs windows, then find them in the server-wide listing. Each window appears once even if linked into several sessions; use windowLinks() when session-local indexes matter. 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 ApiWindows {
static func main() async {
do {
try await withTmuxServer { @Sendable server in
let session = try await server.newSession(named: "work", windowName: "editor")
_ = try await server.newWindow(in: session, named: "logs")
let windows = try await server.windows()
let created = windows.filter { ["editor", "logs"].contains($0.name) }
for window in created.sorted(by: { $0.name < $1.name }) {
print("\(window.name): \(window.paneCount) pane")
}
}
} 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:

editor: 1 pane
logs: 1 pane

Members11#

Common operations5#

Other members6#

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.

Guides#

Pages that discuss Window.

In other ports#

A tmux window

Equivalents of A tmux window in other languages
Language Equivalent
Python libtmux.Window
Ruby LibTmux::Window
Lua libtmux.Window
PowerShell LibTmux\Get-TmuxWindow This cmdlet reads shared .NET LibTmux.Window placements. Use -Server for all sessions or -Session for one session.
Julia LibTmux.WindowSnapshot WindowSnapshot holds captured physical-window data. WindowLink records a placement in a session; actions use WindowRef.
Erlang #tmux_model:window{} A physical window can have several session memberships. window_link holds the session-relative index and active flag.
Elixir LibTmux.Window Window is a physical window. WindowLink records its session index and active state.
Haskell No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing.
Common Lisp libtmux:window window is a physical captured window. window-link preserves each session placement.
TypeScript window.Window
Rust window.Window
Go tmux.Window
Java io.github.libtmux.Window
Clojure libtmux.data/windows Traverses captured window-placement maps without I/O; the window value is a map with an explicit Java reference for effects.
Kotlin io.github.libtmux.kotlin.Window
Scala io.github.libtmux.scaladsl.Window
C# LibTmux.Window
F# LibTmux.FSharp.Window This F# module identifies shared .NET LibTmux.Window placements and builds deferred pane queries. Query.list acquires their results from tmux.
C++ libtmux::Window
OCaml Libtmux.Window.t A global window can have several session placements. Window_link holds the session, index and current flag.
Perl LibTmux::Window Physical window identity. WindowLink owns each session/index placement.
Esc

Type to search.

Reference previewOpen reference