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.new Window(in: named: start Directory: 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.
environmentandshellreach only this window's first pane, the same as tmux's own-eand trailing shell-command onnew-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.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 ApiNewWindow {static func main() async {do {try await withTmuxServer { @Sendable server inlet 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_BINto an absolute executable path to select a tmux version:Terminal window $ swift run ApiExampleExpected output:
Window: logsIndex: 3Same 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
| Language | Equivalent |
|---|---|
| Python | libtmux |
| Ruby | Lib |
| Lua | libtmux |
| Erlang | tmux |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | session |
| Rust | session |
| Go | tmux |
| Java | io |
| Clojure | libtmux |
| Kotlin | io |
| Scala | io |
| C# | Lib |
| C++ | libtmux:: |
| OCaml | Libtmux |
| Perl | Lib 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#.