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.newWindow(in:named:startDirectory:at:environment:shell:)

Creates a window in a session and returns its exact appearance.

Source and package
Qualified name
Server.newWindow(in:named:startDirectory:at:environment:shell:)
Declared in
Server
Package
libtmux-swift
Source
Sources/LibTmux/Creation.swift
Other languages
Perlmethod Erlang PowerShell Julia Elixir Haskell Common Lisp PythonRubyLuaTypeScriptRustGoJavaC#C++KotlinScalaOCaml F# Clojure

Description#

The appearance is read from the creation reply, after the windows already in the session when no index is given. An occupied index fails. environment and shell reach only this window's first pane, the same as tmux's own -e and trailing shell-command on new-window.

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

tmux command#

The tmux commands behind newWindow(in:named:startDirectory:at:environment:shell:).

tmux C API#

The C declarations in tmux that implement these commands.

In other ports#

Create a window

Equivalents of Create a window in other languages
Language Equivalent
Python libtmux.Session.new_window
Ruby LibTmux::Session#new_window
Lua libtmux.Session:new_window
Erlang tmux_window:create/2
Haskell No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing.
TypeScript session.Session.newWindow
Rust session.Session.new_window
Go tmux.Session.NewWindow
Java io.github.libtmux.Session.newWindow
Clojure libtmux.core/new-window!
Kotlin io.github.libtmux.kotlin.Session.newWindow
Scala io.github.libtmux.scaladsl.Session.newWindow
C# LibTmux.Session.CreateWindowAsync
C++ libtmux::Session::new_window
OCaml Libtmux_unix.Client.create_window
Perl LibTmux::Server::new_window 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