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-swift latest

Server.windows()

Every window on this server, in tmux's own order.

Source and package
Qualified name
Server.windows()
Declared in
Server
Package
libtmux-swift
Source
Sources/LibTmux/Server.swift
Other languages
Perlmethod Erlangfunction PowerShellcmdlet Juliafunction Elixirfunction Haskell Common Lispfunction PythonRubyLuaTypeScriptRustGoJavaC#C++KotlinScalaOCamlfunction F#function Clojurefunction
windows() -> [Window]

Description#

A window linked into more than one session appears once here. Use windowLinks() for each session-local appearance.

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
Raises

tmux command#

The tmux commands behind windows().

tmux C API#

The C declarations in tmux that implement these commands.

In other ports#

List the server's windows

Equivalents of List the server's windows in other languages
Language Equivalent
Python libtmux.Server.windows
Ruby LibTmux::Server#list_windows
Lua libtmux.Snapshot.windows
PowerShell LibTmux\Get-TmuxWindow Use the -Server parameter set to acquire window placements across all sessions.
Julia LibTmux.windows windows with a Snapshot reads every captured physical window. Use windowlinks for session placements.
Erlang tmux_snapshot:windows/1 Returns unique captured physical windows. window_links/1 lists session memberships.
Elixir LibTmux.Snapshot.windows/1 Returns a Selection of every captured physical window. window_links/1 lists session placements.
Haskell No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing.
Common Lisp libtmux:windows windows on a snapshot returns captured physical windows once each.
TypeScript server.Server.windows
Rust server.Server.windows
Go tmux.Server.Windows
Java io.github.libtmux.Server.windows
Clojure libtmux.core/windows! Acquires a new graph and returns its window placements without deduplicating linked windows.
Kotlin io.github.libtmux.kotlin.Server.windows
Scala io.github.libtmux.scaladsl.Server.windows
C# LibTmux.Server.Windows
F# LibTmux.FSharp.Server.windows Builds a deferred query for placements across all sessions. Query.list acquires the results; a linked window appears once for each session placement.
C++ libtmux::Server::windows
OCaml Libtmux.Snapshot.windows Reads captured global windows; use window_links for indexed session placements.
Perl LibTmux::Snapshot::windows One entry per physical identity. window_links retains all session placements.
Esc

Type to search.

Reference previewOpen reference