Acknowledgments: Informed by Pallets’ LLM and AI Policy, tmux’s AI contribution guidelines, and OpenJDK’s Interim Policy on Generative AI. Licensing references: the GNU GPL FAQ on translating code and license compatibility. All sources consulted .
--- # Third-party notices Source: https://libtmux.org/en/perl/latest/meta/third-party-notices/ > Thanks to tmux's creator and contributors, with licences and attribution for the software behind libtmux.org. ## tmux First and foremost, thank you to **[Nicholas Marriott (nicm)](https://github.com/nicm)**, the creator of tmux, and to the many [tmux contributors](https://github.com/tmux/tmux/graphs/contributors). We are grateful for the work that makes tmux possible. libtmux is a separate project. Our libraries and supporting tools control a real tmux server; tmux itself provides the terminal multiplexer. This is the libtmux website. Visit the [official tmux website](https://github.com/tmux/tmux/wiki) for the upstream project and its documentation. See tmux's [COPYING file](https://github.com/tmux/tmux/blob/master/COPYING) and the copyright and permission notices in its source files for its licensing. ### tmux artwork The tmux logomark is by Jason Long. The site uses the unmodified [upstream SVG](https://github.com/tmux/tmux/blob/8f25579c5aef8d93924a20681f394e2a582fd3ad/logo/tmux-logomark.svg) under its [copyright and permission notice](https://libtmux.org/en/brand/tmux/LICENSE.txt). ## Programming-language artwork The homepage language selector uses local copies of the following artwork to identify the selected language. Each source record includes the download URL, retrieval time, file hash, copyright information and usage terms. These marks identify their respective languages and do not imply endorsement of libtmux. The SVG files are copied unchanged except for Scala and Rust. Scala's empty surrounding canvas is cropped; its paths, gradients and colors are preserved, and the original SVG is retained beside the cropped copy. Rust's supplied SVG turns its mark white when the device is in dark mode. A browser does not reliably apply that rule to this site's color setting when the file is shown as an image. The rule is removed, its paths are unchanged, and the page lightens the mark on a dark theme instead. | Language | Credit and terms | Local source record | |---|---|---| | Python | Python Software Foundation. The [PSF logo terms](https://www.python.org/psf/trademarks/) permit the unaltered mark to identify Python. | [Python provenance](https://libtmux.org/en/brand/languages/py/provenance.json) | | Ruby | Copyright © 2006, Yukihiro Matsumoto. The [Ruby logo](https://www.ruby-lang.org/en/about/logo/) is licensed under [CC BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/). | [Ruby provenance](https://libtmux.org/en/brand/languages/ruby/provenance.json) | | Lua | Copyright © 1998 Lua.org; graphic design by Alexandre Nakonechnyj. The Devicon copy carries its [MIT notice](https://libtmux.org/en/brand/languages/lua/LICENSE.txt); [Lua's logo terms](https://www.lua.org/images/) also apply. Visit [Lua.org](https://www.lua.org/). | [Lua provenance](https://libtmux.org/en/brand/languages/lua/provenance.json) | | TypeScript | Microsoft. The [official branding terms](https://www.typescriptlang.org/branding/) govern the mark; the website repository licenses exclude logo and trademark rights. | [TypeScript provenance](https://libtmux.org/en/brand/languages/ts/provenance.json) | | Rust | The Rust Foundation. [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) and the [Rust trademark policy](https://rustfoundation.org/policy/rust-trademark-policy/) apply. | [Rust provenance](https://libtmux.org/en/brand/languages/rs/provenance.json) | | Go | The [Go gopher](https://go.dev/blog/gopher) is by Renee French, licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). | [Go provenance](https://libtmux.org/en/brand/languages/go/provenance.json) | | C++ | Created by Jeremy Kratz and licensed by the Standard C++ Foundation under its [logo-use terms](https://isocpp.org/home/terms-of-use). | [C++ provenance](https://libtmux.org/en/brand/languages/cxx/provenance.json) | | Swift | Apple Inc., under the [Swift Logo Guidelines](https://developer.apple.com/swift/downloads/swift-logo.zip). Swift and the Swift logo are trademarks of Apple Inc. | [Swift provenance](https://libtmux.org/en/brand/languages/swift/provenance.json) | | Java | Devicon collection copyright (c) 2015 konpa, with its [MIT notice](https://libtmux.org/en/brand/languages/java/LICENSE.txt). This does not establish unrestricted rights to the underlying Java logo; [Oracle's logo terms](https://www.oracle.com/legal/logos/) apply. | [Java provenance](https://libtmux.org/en/brand/languages/java/provenance.json) | | Kotlin | Kotlin Foundation brand guidelines preserve JetBrains copyrights. The [icon-use terms](https://kotlinfoundation.org/guidelines/) permit identifying Kotlin alongside other programming-language icons. | [Kotlin provenance](https://libtmux.org/en/brand/languages/kotlin/provenance.json) | | Scala | Copyright EPFL. [Historical permission](https://groups.google.com/g/scala-user/c/bCC-R0FQn1w) covers noncommercial Scala promotion; the [general artwork-license question](https://github.com/scala/scala-lang/issues/1040) remains unresolved. | [Scala provenance](https://libtmux.org/en/brand/languages/scala/provenance.json) | | C# | Copyright the .NET authors. [Brand-use permission](https://github.com/dotnet/brand/issues/10#issuecomment-669465301) allows the unmodified logo to represent .NET. The repository's CC0 statement covers illustrations; no blanket CC0 claim is made for the logo. | [.NET provenance](https://libtmux.org/en/brand/languages/csharp/provenance.json) | | F# | The F# Software Foundation. Its [logo terms](https://foundation.fsharp.org/logo) require unchanged shape, colors and proportions, without implying Foundation representation. | [F# provenance](https://libtmux.org/en/brand/languages/fsharp/provenance.json) | ## Terminal artwork The tmux CLI selector displays the Windows Terminal artwork by Microsoft Corporation, licensed under [CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0/). The SVG is unmodified. See the [source and provenance](https://libtmux.org/en/brand/tools/terminal/provenance.json) and [copyright and license](https://libtmux.org/en/brand/tools/terminal/LICENSE.txt). ## Documentation toolchain libtmux and this site are built with open-source software. The following tools have their own licences and attribution requirements. | Tool | Licence | Role | |---|---|---| | [Astro](https://astro.build/) | MIT | The site shell | | [Tailwind CSS](https://tailwindcss.com/) | MIT | Styling | | [Pagefind](https://pagefind.app/) | MIT | Site-wide search | | [Expressive Code](https://expressive-code.com/) | MIT | Code blocks | | [Sphinx](https://www.sphinx-doc.org/) | BSD-2-Clause | Python and C++ reference | | [Furo](https://github.com/pradyunsg/furo) | MIT | Sphinx theme | | [Breathe](https://github.com/breathe-doc/breathe) | BSD-3-Clause | Doxygen XML into Sphinx | | [Doxygen](https://www.doxygen.nl/) | GPL-2.0-only | Parses C++ headers to XML | | [API Extractor](https://api-extractor.com/) | MIT | TypeScript API model | | [IBM Plex](https://github.com/IBM/plex) | OFL-1.1 | Typeface | ### A note on Doxygen Doxygen is licensed GPL-2.0-only. It runs as a build step that reads libtmux's own headers and emits XML; that XML is rendered by Breathe and Sphinx, and no Doxygen-generated HTML is published. Running a GPL program over your own input does not place its licence on the output, and libtmux does not distribute Doxygen or any modified version of it. ## Reference hosting The [PyPI blocks logo](https://pypi.org/trademarks/) is a trademark of the Python Software Foundation and identifies links to the Python Package Index. Other package-host icons use [Simple Icons](https://simpleicons.org/) (CC0-1.0). The docs.rs mark is its [`docsdotrs` icon](https://github.com/simple-icons/simple-icons/blob/16.35.0/icons/docsdotrs.svg), inlined unchanged. The book beside javadoc.io links is original artwork for this site: the host publishes no vector logo, and the mark does not imitate its favicon. Some ports deep-link to the canonical host their ecosystem already uses, rather than duplicating it here: - Rust: [docs.rs](https://docs.rs/libtmux), for each published crate - Go: [pkg.go.dev](https://pkg.go.dev/github.com/libtmux/libtmux-go/tmux) - Java, Kotlin and Scala: [javadoc.io](https://javadoc.io/doc/io.github.libtmux/libtmux) - Swift: the [Swift Package Index](https://swiftpackageindex.com/libtmux/libtmux-swift/documentation/libtmux) copy of the DocC reference Those sites are operated independently of this project and carry their own terms. ## libtmux itself Each port is MIT licensed. See the `LICENSE` file in that port's repository for the authoritative text. --- # API glossary Source: https://libtmux.org/en/perl/latest/reference/glossary/ > Kinds, modifiers and package labels in the Perl API reference. ## Symbol kinds Kinds identify declarations in the Perl API reference. ### module A loadable Perl source unit, normally a .pm file loaded with use or require. Namespace names use ::; source paths use directories, such as LibTmux/Selection.pm. One distribution can provide many modules. References: [Perl modules and packages](https://perldoc.perl.org/5.44.0/perlmod). ### class A Perl package used as the class of a blessed reference. LibTmux uses ordinary packages and bless. Selection objects retain native array-reference behavior; their documented methods provide validation and filtering. References: [Perl objects and classes](https://perldoc.perl.org/5.44.0/perlobj). ### method A Perl subroutine invoked through a class name or object reference with ->. The invocant is the first positional argument. Read the signature and method documentation for the remaining arguments, return value and I/O behavior. References: [Perl method invocation](https://perldoc.perl.org/5.44.0/perlobj#Method-Invocation). ### exception A typed Perl value thrown with die and caught by an exception handler. LibTmux throws blessed error objects with diagnostic fields and readable stringification. Acquisition failures remain errors rather than empty results. References: [Perl exceptions](https://perldoc.perl.org/5.44.0/functions/die). ## Modifiers Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature. ### async An operation returning a Future through the optional LibTmux-Async distribution. Drive completion with the caller-owned IO::Async loop. Cancelling a Future and completing resource cleanup are separate outcomes; successful close completion proves cleanup. References: [Future](https://metacpan.org/pod/Future); [IO::Async::Loop](https://metacpan.org/pod/IO::Async::Loop). ### inherited A method found through Perl package inheritance. The reference names its declaring package. The inherited method keeps that package’s documented return, ownership and I/O contract. References: [Perl inheritance](https://perldoc.perl.org/5.44.0/perlobj#Inheritance). ## Package context Package labels identify where an API is supplied. ### package The installable Perl distribution supplying this API. The package badge names a distribution such as LibTmux-Async. A Perl package declaration introduces a namespace; one distribution can contain several namespaces. References: [Preparing Perl distributions](https://perldoc.perl.org/5.44.0/perlnewmod). --- # Perl-based tmux workspace manager Source: https://libtmux.org/en/perl/latest/workspace/ > Validate, plan, and load versioned JSON workspaces with LibTmux-Workspace. **Workspace Manager concept example** A working example of the core library. It can change without notice. Build `libtmux-workspace` from the source revision in the installation guide. The `LibTmux-Workspace` package supplies this command. Follow the workspace guide for its configuration format. [LibTmux-Workspace](https://libtmux.org/en/perl/latest/workspace/reference/) is a separate native Perl distribution using public core APIs. Its `libtmux-workspace` command validates, plans, and loads the [libtmux.workspace/v1 JSON format](https://libtmux.org/en/perl/latest/workspace/source-guide/). Planning performs no tmux I/O. Loading creates sessions, windows, and panes, with explicit conflict and repeat policies. Install core first, then workspace from the same source checkout. These packages are not published to CPAN. The [workspace guide](https://libtmux.org/en/perl/latest/workspace/source-guide/) contains the configuration contract and installed CLI commands. The [API reference](https://libtmux.org/en/perl/latest/workspace/reference/) documents the public loader and report errors. --- # LibTmux::Workspace API reference Source: https://libtmux.org/en/perl/latest/workspace/reference/ > Public Perl workspace configuration, planning, loading, and error APIs. **Workspace Manager concept example** A working example of the core library. It can change without notice. Use [LibTmux::Workspace](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace/) to validate configuration, inspect a plan, and load sessions, windows, and panes through public core APIs. Planning performs no tmux I/O. Loading reports completed steps, conflicts, and partial failures. The declarations below preserve native signatures, POD links, and source locations. Read the [workspace guide](https://libtmux.org/en/perl/latest/workspace/source-guide/) for the versioned JSON format, source installation, and complete CLI examples. ## API declarations - [LibTmux::Workspace::X::Config](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-x-config/) - [LibTmux::Workspace::X::Conflict](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-x-conflict/) - [LibTmux::Workspace::X::Load](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-x-load/) - [LibTmux::Workspace](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace/) - [LibTmux::Workspace::X](https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-x/) --- # API glossary Source: https://libtmux.org/en/perl/latest/workspace/reference/glossary/ > Kinds, modifiers and package labels in the Perl API reference. ## Symbol kinds Kinds identify declarations in the Perl API reference. ### module A loadable Perl source unit, normally a .pm file loaded with use or require. Namespace names use ::; source paths use directories, such as LibTmux/Selection.pm. One distribution can provide many modules. References: [Perl modules and packages](https://perldoc.perl.org/5.44.0/perlmod). ### class A Perl package used as the class of a blessed reference. LibTmux uses ordinary packages and bless. Selection objects retain native array-reference behavior; their documented methods provide validation and filtering. References: [Perl objects and classes](https://perldoc.perl.org/5.44.0/perlobj). ### method A Perl subroutine invoked through a class name or object reference with ->. The invocant is the first positional argument. Read the signature and method documentation for the remaining arguments, return value and I/O behavior. References: [Perl method invocation](https://perldoc.perl.org/5.44.0/perlobj#Method-Invocation). ### exception A typed Perl value thrown with die and caught by an exception handler. LibTmux throws blessed error objects with diagnostic fields and readable stringification. Acquisition failures remain errors rather than empty results. References: [Perl exceptions](https://perldoc.perl.org/5.44.0/functions/die). ## Modifiers Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature. ### async An operation returning a Future through the optional LibTmux-Async distribution. Drive completion with the caller-owned IO::Async loop. Cancelling a Future and completing resource cleanup are separate outcomes; successful close completion proves cleanup. References: [Future](https://metacpan.org/pod/Future); [IO::Async::Loop](https://metacpan.org/pod/IO::Async::Loop). ### inherited A method found through Perl package inheritance. The reference names its declaring package. The inherited method keeps that package’s documented return, ownership and I/O contract. References: [Perl inheritance](https://perldoc.perl.org/5.44.0/perlobj#Inheritance). ## Package context Package labels identify where an API is supplied. ### package The installable Perl distribution supplying this API. The package badge names a distribution such as LibTmux-Async. A Perl package declaration introduces a namespace; one distribution can contain several namespaces. References: [Preparing Perl distributions](https://perldoc.perl.org/5.44.0/perlnewmod). --- # Topics Source: https://libtmux.org/en/perl/latest/topics/ > Topics for LibTmux. Understand object ownership, state, and operation behavior. - [Errors and recovery](https://libtmux.org/en/perl/latest/topics/errors/): Read about errors. - [Linux and tmux compatibility](https://libtmux.org/en/perl/latest/topics/compatibility/): Read about compatibility. - [Live query planning](https://libtmux.org/en/perl/latest/topics/query-planning/): Read about query-planning. --- # Errors and recovery Source: https://libtmux.org/en/perl/latest/topics/errors/ > Errors and recovery: LibTmux documentation. Errors are typed [`LibTmux::X`](